ENIGMA Development Environment
Website is in read-only mode due to a recent attack.

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

Proposals / Re: Tierable Systems
« on: March 30, 2010, 08:13:23 PM »
"you could pick any graphics system including a lack of one, same with any other system, and you would be able to build your own reusable systems"
That's the intention of this system as well. I'm taking a different approach, attempting to reduce everything to organized tiers assuming a chain of previous tiers.

"Josh thinks that would be too slow because he has no concept of scale, he hasn't run any benchmarks"
Josh asserts that this is slow relative to the system in place, due to the factor by which the necessary number of cycles will be multiplied. Josh would rather remove those cycles, pushing the excess time consumption on the compile process rather than the running engine.

"unrealistic particle system examples"
250 * 20 = 5000. If that's an unrealistic number of lines, I can't wait to see your responses when I'm running a 1,000,000 pixel-particle shader. And yes, yes, shaders are so much different. Only not really; they're a great way to speed up heavy procedural particles. Which that example was. Something is not "unrealistic" just because Game Maker can't pull it off at >10 fps.

"Circular logic was you excusing your lack of examples of my suggestions by just assuming they must exist."
I'll grant it again due to laziness. But now I'm starting a list.

"There are plenty of nice-running games in GM. That was the lie."
There are plenty of nice-running games for DOS. Therefore Portal requires an unrealistic system to run. (inb4 portal for DOS)
Try making anything 3D in Game Maker. Oh, but GM isn't for 3D? Well, it's not for decent game creation either.

You suggested yourself that the accessors be virtual, and then verified yourself that virtual and inline were exclusive. The workarounds to make everything non-virtual would be the same as those when working with this simple tiered system. So leaving them non-virtual comes down to me not seeing the point, other than that you suggest it makes more "sense."

Tips, Tutorials, Examples / Re: Which should I use?
« on: March 30, 2010, 07:58:08 PM »
You meant int** for the first parameter to the first function?
Anyway, yes, there is a difference between all of those.

In a function parameter,
int a; specifies that "a" is one integer, local to this function. The memory is copied (not a very costly procedure; there's no improving it) for use by the function.
int &a; signifies that "a" is passed as a reference, but treated like an integer all the same. This time, the address is copied, which can be of equal or lesser size than the actual integer. This allows the function to edit the contents of "a" in the scope from which it was passed. This is the only time you should use & in parameters.
int *a; is pointer to int; it's an integer marking an integer in memory, and must be dereferenced explicitly with * or implicitly with [] for use.
int **a; is a pointer to a pointer to an int; it's an integer that points to the address of the integer you want. You can dereference it with any combination of [] and *.

Proposals / Re: Tierable Systems
« on: March 30, 2010, 07:41:38 PM »
Something that quadruples (probably more accurately decatuples, but I didn't want to assert a too-outlandish figure, after all) the number of clock cycles necessary to look up a fucking variable in a class I have a pointer to?

"Slippery slope, circular logic and outright lies."
I pointed out the slippery slope myself, with a slight satisfaction I might add ("That was a slippery slope fallacy. It's pretty commonly used in court cases"). There was no circular reasoning as far as I can discern, and I assure you none of it was a lie.

"If you want to build a bad system, go ahead, but don't come asking for suggestions."
A "bad system" in the opinion of one who would multiply the number of cycles necessary to look up a fucking x value, in a class to which I have a pointer, by at least four. In my opinion, and in the opinion of everyone else on the team who didn't feel you were worth responding to, it's better not to waste the cycles on something like x.

Also, I didn't even explicitly ask for a suggestion, I simply welcomed them. I didn't explicitly ask you, either. You gave a suggestion, I declined it. You continued to defend it, I continued to decline it. If you can't cope with me declining a suggestion, quit offering them.

Proposals / Re: execute_string via Google V8
« on: March 30, 2010, 07:34:38 PM »
In response to...?

Proposals / Re: execute_string via Google V8
« on: March 30, 2010, 06:01:04 PM »
Not without recursion.

Proposals / Re: Tierable Systems
« on: March 30, 2010, 05:57:16 PM »
Yes, yes. But we'll start with inherited member access and then it'll progress to something in draw_line I can't even fathom your improvement for. Or maybe ENIGMA's calling convention in general, who knows; the net result somehow being GM's 7fps rate.

Also, I can't really tell your suggestions apart from anti-C++ propaganda. :troll:
In actuality, I'm too lazy to go read through our other four page debates.

Proposals / Re: execute_string via Google V8
« on: March 30, 2010, 05:44:15 PM »
See this.

Announcements / Re: Update
« on: March 29, 2010, 11:29:07 PM »
My main todo list was just checked off. What's left after Ism and I have that damn plug-in working is getting with() to work again, and as time permits, implementing that new instance system I wrote a decade ago.

The todo list I was referring to is composed of some 10 "TODO:"s throughout the ENIGMA source. Here are eight of them:
Graphics_Systems\OpenGL\GSscreen.cpp|38|#include "../../Universal_System/key_game_globals.h" //TODO: Replace this with a tier-level header in ../|
Graphics_Systems\OpenGL\GSscreen.cpp|76|//TODO: Replace this once instances are sorted by object index as well|
Graphics_Systems\OpenGL\OPENGLStd.cpp|43|#include "../../Universal_System/key_game_globals.h" //TODO: Replace this with a tier-level header in ../|
Platforms\windows\WINDOWSmain.cpp|31|namespace enigma //TODO: Find where this belongs|
Platforms\windows\WINDOWSshow_error.cpp|31|/*namespace enigma //TODO: find the original declaration of the contents of this namespace and erradicate it|
Platforms\windows\WINDOWSshow_error.cpp|38|namespace enigma //TODO: This is from events.h: fix according to TODO pointed to by above TODO|
Universal_System\instance.h|135|//TODO: Move these to an instance_planar|
Universal_System\instance.h|158|//TODO: replace all these fucking enigma::instance_iterators with enigma::institer_t i or something|

Some of the headers under Universal_System are also still plug-ugly. I'll fix those as I make with() work again (most of them center around that category).
But first I'd like the IDE to communicate again so I can actually make several objects. ;_;

Proposals / Re: execute_string via Google V8
« on: March 29, 2010, 11:24:53 PM »
I can see it being helpful; I can't see me using it.

Proposals / Re: Tierable Systems
« on: March 29, 2010, 11:22:27 PM »
That's a bit bold a statement on all counts. Your missing the point; you just suggested that I reduce the speed of the lookup of needed locals by >75%. The few cycles it once took to look up X are now repeated more than three additional times to successfully make a call to that un-inlined function. We're quadrupling the work that needs done. And now you're justifying it with "a cycle is small, therefore all the cycles you will be throwing out the window with this method are small" (That's the fallacy of composition, just as a fun side-note. And it doesn't apply to mathematically distributing a 4x cycle factor to all processes, by the by).

All I need to do is take advice like that on a dozen or so more systems, and I can successfully reduce the speed of the project by a quarter, and then I can render those lined-flames like GM8 does. At seven frames per second for some 250 of them (That was a slippery slope fallacy. It's pretty commonly used in court cases).

I'm not even starting down that road. I don't care how relatively small the change is compared to the rest of the project; this isn't the first such change you've suggested and I highly doubt it will be the last.

Proposals / Re: Tierable Systems
« on: March 29, 2010, 11:00:25 PM »
*shrug* I don't see that as a problem.

Announcements / Re: Update
« on: March 29, 2010, 10:56:02 PM »
Best. Grammar. Mistake. Ever.
...Nah, mediocre, but I'm leaving it.

Announcements / Update
« on: March 29, 2010, 10:48:55 PM »
Ism is presently dealing with "real-life" things. She'll be around; hopefully enough so to wrap this up quickly.

I've implemented the tier system, reducing the compile time to about four seconds on this computer, which apparently is about average in comparison to some of other ENIGMA members' computers, assuming those are what you'd call "good". Basically, it's what you'd get out of a GM game, except the compile's a one-time deal and accounts for 95% of the time at least.

So yeah, ENIGMA's up to speed. Much better than R3's 30 second compile jobs.

ENIGMA is a DLL now. The ENIGMA plug-in fails to pass it the resources, though, due to some major JNA failure. Ism has successfully segfaulted Java on multiple occasions today.

I'm not sure what I will do tomorrow, other than go to school, which will be weird since it's Spring Break for high school but not college. I'll try to get something in this household running Linux again and make sure the engine works for it, too. Oh, by the way, I'm making sure that the new tiering system comes with even better organization than in the repo. It's going to be a fun time committing all these moves and deletes. -.-"

I prepared a small todo list of revisions for the engine. Really, I need Ism to get JNA working so I can test the damn compiler part already. >_<

If anyone has the patients of a saint and the Java skills of, er,... a patient gopher, I could use a hand. :P

Ciao for now; going to do any homework I may still be putting off.

Proposals / Re: execute_string via Google V8
« on: March 29, 2010, 06:44:52 PM »
And what happens when you introduce functions like random()? I think the nice thing about those languages is that their functions are geared to aid in the domain restriction of the types. C++ is a bit too complicated for that.

Lambda aside, C++ is the one that lets you devise your own types with their own operators as well. And you can's always assume that > will return if left operand is greater than right, nor can you even assume a literal representation of any of it. Unfortunately, that includes var. Which is part of why I offered C types in the first place.

Proposals / Re: Tierable Systems
« on: March 29, 2010, 06:35:41 PM »
For the few instances I *have* to use it (as in, when the user makes a call via integer.varname), that's the best I'm getting.
The inefficiency of one system out of necessity (or otherwise, for that matter) doesn't justify the inefficiency of another, especially just on the grounds that it seems like a good idea to some individual.

That's no reason to need an accessor for compiled engine code.