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

286
General ENIGMA / Re: Compatibility flags.
« on: June 23, 2014, 07:47:22 PM »
I believe the short answer to your question is that the "Compatibility/Progress" box is a great place for a GM5/6/7/8/S dropdown box.

There is also a long answer:

Offering compatibility with GM is becoming a more and more complicated problem for these reasons. I was looking into compiler scripting as a solves-all, but in this case, offering a GM compatibility dropdown seems like a perfectly fine solution to me. I am not sure, but do not think our settings file format presently supports combo boxes, but I could be wrong, and if not, that feature should be pretty easy to add.

If we aren't already doing so, we should invest in sending options as a list of key-value pairs so that the true dynamic nature of our settings file is exposed. I recall that Ism and I had set that up correctly a while ago, but am not certain. This translation should be happening compiler-side, though; the IDE should be reading the ENIGMA Settings YAML and generating that dialog, then just sending the values for each key.

It was my original vision that extensions would be able to express their own internal option states in a similar fashion, by providing a settings.ey file. Again, though, it sounds as if your solution is more easily expressed as a generic GM5 vs other GM-versions quirk. Unless you think there are other reasons a user may wish to default that variable to true, in which case, extension settings would be required.

To elaborate on compiler scripting, this would enable an extension to insert a code printing directive directly into the compiler. This is the ultimate end-game for allowing custom resources, and removal of resources that simply bug users. In this case, you would probably use an extension-specific settings file and then handle it from within a compiler script. This is a very involved solution that is not likely to be made available to you anytime in the near future.

287
We have a lot of OpenGL changes rolling in. When was your last update?

288
Proposals / Re: Make the views visible in the rooms editor
« on: June 22, 2014, 07:15:16 AM »
Isn't there already an option for that under the Show menu? You can toggle visibility of objects, tiles, backgrounds, and views there. They're disabled by default because they're quite ugly and not actually going to show up in-game.

289
Off-Topic / Re: Sound Editor (MIDI)
« on: June 21, 2014, 07:11:54 PM »
From the name, I assume you're tailoring it to ENIGMA, so one key advantage is that ENIGMA can play XM files. :P

A better (and more permanent) reason is that XM is more portable. The files are a little larger on average, because the sound samples are stored inside the file. This means they sound the same between Windows and Linux. Moreover, I've never used a Linux program with good MIDI support; as far as I can tell, the Microsoft soundfont that encapsulates everything people think of when they hear "MIDI" is (A) proprietary and (B) not actually a sound font, but a DLL.

tl;dr: Portability

OGG/Vorbis is an extremely portable alternative. Everything can play Vorbis, anymore.

I am... extremely curious as to how successful a JavaScript sequencer would be. We used JavaScript to allow writing custom waveforms for instruments... it was awfully slow.

290
Off-Topic / Re: Sound Editor (MIDI)
« on: June 21, 2014, 03:56:41 PM »
Not that important. Ism and I started writing a sequencer earlier; it was an early failure. If you do go through with it, I recommend XM as opposed to MIDI.

291
Issues Help Desk / Re: Constants don't work?
« on: June 21, 2014, 01:22:52 PM »
The parser in the other branch allows enums to be inline in EDL. The wiki page was written for that.

292
Off-Topic / Re: A complex maze with one line of code !
« on: June 20, 2014, 07:55:00 PM »
The Pi was a cheap example; many Linux distributions, including Arch Linux, ship the same way.  Few people choose to have their computers in that state; a Pi is just an example where you don't have much choice, so it ships that way.

As far as simplifying architectures goes, it happens all the time. In embedded systems. You can't ship one product and have it perfectly simplify everything your users might code. ENIGMA has the slight benefit of assuming you're coding a game. We don't have the ability to tailor to 2D games, or platform games, or RPGs, or 3D shooters.... The best we can do is offer tools to help you with whichever you decide you're making.

In the same way, vendors can't assume you need ASCII, a degree symbol, copyright symbol, trademark symbol, Spanish and French accented characters, and some box art. We used to get away with that, and it made some tasks easier. It just isn't on the table anymore.

293
Off-Topic / Re: A complex maze with one line of code !
« on: June 20, 2014, 03:44:14 PM »
For $40 I will sell you a Pi, and you can type this into the first thing you see after you press that exact button:

Code: (Bash) [Select]
chars="╱╲"; while :; do printf ${chars:$((RANDOM % 2)):1}; done
Admittedly more verbose, but then, not really a use case of Bash. *shrug*

The redeeming quality is that the other "maze" generator is now a total of seven chars longer:
chars="┓┗┛┏┳┻┫┣╋"; while :; do printf ${chars:$((RANDOM % 9)):1}; done

For an extra $3, I'll set a frontend to Geordi as your scripting environment.

294
Off-Topic / Re: A complex maze with one line of code !
« on: June 20, 2014, 07:08:04 AM »
That prints a complex maze, eh? So by complex, you mean unsolvable to seventeen sigmas of certainty.

I used to love screwing around in MS Paint. I would amaze my classmates by creating semitransparent objects using stippling, even though the displays were 800x600 and you'd have to be blind not to see the pixels. Yeah, Windows 95 was the best. This doesn't make what I did color interpolation, and it doesn't make that line print a maze.

And for the record, the equivalent C is for (;;) printf((rand() & 1)? "╱" : "╲");, or if you really like, a: printf((rand() & 1)? "╱" : "╲"); goto a;.

The output looks like this:


An even more unicodey version is for (;;) printf("%s", "┓\0\0\0\0\0\0\0\0╋" + ((rand() % 9) << 2));.

Its output instead looks like this:


tl;dr: Please let BASIC die in peace; programming hasn't gotten more difficult. For anything. It's only gotten easier; we just can't reserve non-ascii characters for box drawing anymore.

295
General ENIGMA / Re: Timelines won't update correctly after saving.
« on: June 15, 2014, 10:08:52 PM »


Well, I don't cache anything. I don't know where this is happening. It's possible someone butchered the code I wrote that checks if a file will change before re-writing it (touching it) to reduce compile time, and managed to just not update timelines at compile time. Could you print the code ENIGMA is receiving and verify it's up-to-date? If it isn't, it's being cached LGM-side. Otherwise, it's either somehow cached in the compiler (old pointer, somehow? horrifying) or just not updating the file. The second compile in that video appeared to be REALLY fast, yeah? I'd guess the latter.

296
General ENIGMA / Re: Timelines won't update correctly after saving.
« on: June 15, 2014, 08:32:27 PM »
In the code and the timeline? And opening them back up reveals the changes have been saved internally? There's literally no other place for this information to exist.... If that's really happening, something more than a little fishy is going on.

297
Issues Help Desk / Re: Josh! Relieve my penis!!
« on: June 15, 2014, 01:18:25 PM »
Looks to me like you have some kind of race condition, there. The actual error message is probably a little bit further down in the scrollback.

298
Issues Help Desk / Re: Josh! Relieve my penis!!
« on: June 14, 2014, 09:24:59 PM »
I'm convinced your log is being discarded by some glitch. These logs should be written to a file somewhere, as well, so if you can track down where Robert hid it, you should be able to find the problem.

299
General ENIGMA / Re: Question about audio:none
« on: June 14, 2014, 09:10:56 PM »
Every system type, yes. It'd be hard to mock the collision and networking systems in a useful manner, and you'll find the same is true of most extensions. There are plenty of systems out there to automate mocking—Google maintains Mockito, as an example with which I've become very experienced. But this isn't what we need, here. Your instinct is correct, though; we can create a template function or macro whose only job is to take the place of a function that is supposed to load a file or stream and record that it was done.

300
General ENIGMA / Re: Question about audio:none
« on: June 14, 2014, 01:07:18 PM »
If this is going to be an "every system" thing, we might just call it "Debug." It seems like a good idea to do this sort of logging globally.