Jump to content

Niemand

Moderator
  • Posts

    2,138
  • Joined

  • Last visited

Everything posted by Niemand

  1. Modifying Custom Abilities: I'm not aware of anyone using this trick, and while the documentation doesn't imply that it is impossible it also doesn't go out of its way to say that it is allowed: Calling init_special_abil more than once with the same ability index appears to redefine the ability in a perfectly sensible way. Also, init_special_abil can be used at any time (not just in the scenario script's LOAD_SCEN_STATE), so one can dynamically alter custom abilities. An obvious use for this would be a case in which a scenario wants to have more than four defined abilities (as long as no more than four are defined at any one time). Here's an amusing if dumb example of an ability which actually alternates what it does: Code: beginscenarioscript;variables;body;beginstate LOAD_SCEN_STATE; init_special_abil(0,"Ability 1",10);break;beginstate START_SCEN_STATE; change_custom_abil_uses(0,0,1);break;beginstate START_STATE;break;beginstate 10; print_str("ABILITY 1!"); change_custom_abil_uses(who_used_custom_abil(),0,1); init_special_abil(0,"Ability 2",11);break;beginstate 11; print_str("ABILITY 2!!"); change_custom_abil_uses(who_used_custom_abil(),0,1); init_special_abil(0,"Ability 1",10);break; Note that since the game doesn't store ability definitions in save files (which is exactly why init_special_abil is recommended to be placed in the LOAD_SCEN_STATE) when doing something like this it would be adivable to store the state of the currently defined abilities using flags so that the LOAD_SCEN_STATE can properly restore it. This technique doesn't actually accomplish anything that couldn't have been done already by writing more complex logic in the state which a special ability invokes, except changing the displayed ability name, but that may be useful sometimes in and of itself, and this technique may make it easier to write simpler code in some cases.
  2. Originally Posted By: Kelandon Anyone have suggestions about where KPPP should go? I'd be happy to give you a subdomain on my site, if you wish. Otherwise there's Freewebs (now 'webs.com'), which seems to work fine for those who use it (years ago I used it for like a week and didn't like it, but I doubt my experience then relates meaningfully to how it is now).
  3. The 3D Editor should work (You might need the latest version). I'll have to recompile Dialogue Editor (although it sucks and isn't really worth using). I do have the source code for the command-line version of Alint, and I use it as a part of AScript. The copy on my website won't work, though, because AScript is compiled as a universal binary but its internal copy of alint is ppc. Another thing to recompile tonight. EDIT: So I found all of the relevant source code for Dialogue Editor and alint, and i even succeeded in properly integrating alint into AScript so that the source code is used to compile it rather than just copying in the ancient, revered, and nearly-irreplacable binary file. (I am thinking most unkind thoughts about whoever wrote "This . . . may change behavior in other minor ways." regarding the behavior of the -y flag for bison, as the changes I ran into didn't seem to be 'minor' at all.) I could put AScript up on my website now, but unless anyone urgently needs it I'd rather not; there are a few glaring problems I need to fix (like the reference index that points to reference pages I haven't yet written) and I'd like to iron those out so that people have something nice to use. Dialogue Editor. . . may take some work since I'll have to either install Eclipse again (and I'd rather not), or figure out a way to get Xcode to compile it (which should be possible, but is a thing I've never tried before). In summary, I've already stayed up too late tonight, I'll work on this stuff on the weekend.
  4. I'm fond of Drunk Men Work Here for its weird projects and activities. Sadly, it's been more-or-less in hibernation (if not, in fact, dead) since before I found it.
  5. There are some of these which aren't listed in any official documentation. It's usually combination of a bug in your script and a bug in the game (which ought to give you a clear message about the problem and stop the script, rather than crashing). Take a look at this post, particularly under the heading for Unhandled Exceptions. Then look around your scripts and see if you can connect the problem to one of the ones listed there. In the worst case, you may have to fall back on commenting out large swathes of your script, using bisection to locate the part that actually causes the crash. Hopefully it won't come to that, though.
  6. The clue is where it says 'rtf': Your data is in the form of formatted, 'rich' text (with font and size information, and so on) but the game only knows how to deal with unformatted, ASCII text (which is the same as UTF-8 encoded unicode, as long as you avoid any fancy characters). So, make sure that whichever text editor you use is set to save your file as 'Plain Text', or the nearest equivalent option.
  7. You want void move_to_new_town(short new_town,short loc_x,short loc_y). Note, though, that there is a rather hefty restriction on the use of this call: it only works if called from a script state triggered by the party stepping into a special encounter rectangle, indoors (you can't teleport the party into a town when they were outdoors).
  8. Quote: im having trouble understanding how to make an NPC talk Is your question about how to create the dialogue, how to make the conversation start, or both? Have you read section 2.14 of the documentation? (It's quite understandable if you still have questions after having read that, but it's the right place to get started, at least.) Quote: how to make a special encounter I assume you already now about the 'Place Special Encounter Tool' in the editor, and that your question is more about the scripting side of it. I'm not sure how much of this you already know, but you've no doubt seen that each town of outdoor section (let's just say 'zone' to refer to either) in a scenario can have a script file. The script has a few parts: a line to say what kind of script it is, some description of what variables will be used in it, and code which is divided into states. Each state is just a piece of code that has a well-defined task and gets run as a block. Some states are run automatically by the game at various times (like when entering, leaving, and spending time in zones) and these have special labels (which are still just numbers actually) like START_STATE. The other states just have plain numbers (10, 20, 46, etc.) and only get run when you, the designer, say they should. The main way is by associating a state with a blue special encounter rectangle, so that it runs when the party enters the rectangle. So, the number you assign to a special encounter rectangle in the editor is exactly the number of the state in the zone's script which you want to be run. As for the code in the script states. . . there are a lot of things you can do. The best way to get started is probably to think of cases in scenarios you've played where a special encounter does something like what you want and read that encounter's code to find out how it did it. There's also a listing in one of the appendices to the documentation of all of the things that you can make a script do. Quote: is there anyway to fix an NPC to one spot or atleast control where they wander in the town If the NPC is using the standard default script ('basicnpc') then there's a very easy way: in the editor, set the NPC's first memory cell (number 0) to 1 (to make it stand still unless it needs to fight) or 2 (to make it stand still no matter what). That same script does limit how much it will wander (it won't normally go more than about 6 spaces from its starting point), and there are a lot of ways to make an NPC wander or move in a more controlled manner, so if you want something fancy you'll need to be more specific about what. I hope some of this helps; scripting in BoA can be tricky but you can also get some pretty cool results if you stick with it to make it work. Welcome to spiderweb, please leave your sanity at the door.
  9. The best place to ask would be in the Geneforge Forum; I've not played that series myself, but this thread might be a good starting point.
  10. Quote: Alorael, who would prefer an opt-in list. He doesn't want to listen to most people most of the time, really. This would make it difficult for you to discover new people worth listening to. You could still learn about them through excerpts of their posts quotes by people to whom you have already chosen to listen, as long as your list is still connected to most of the user graph[^1] (some members of your list listen to people who are not members of your list). Or you could just conclude that you already listen to enough people (or to all of the interesting people you expect to be present) and ignore the problem. [^1]: A forum whose population disintegrated into multiple subsets of members who no longer acknowledged each others' existences would be rather odd. Also a waste of time, since it would then be more efficient for each group to have its own forum.
  11. Quote: cosmic rays could be kept out by adding (strong) electromagnetic shielding Cosmic rays are not electromagnetic radiation (thanks to being named before people knew what they were, and generally sloppy naming); at low energies they are electrons and positrons, at higher energies they are protons and heavier nuclei, and no one knows what the composition is at the highest energies. (The debate is whether the answer is 'protons only' or 'heavy nuclei'. I belong to the protons camp, as I believe in photodisintigration, but there are recent results arguing for heavy nuclei.) What we typically notice at ground level is not the cosmic rays themselves, but the muons they produce when they cause particle showers in the atmosphere. The point is that the only way to stop any of these particles is with kilometers of dense material, usually combined with hundreds of kilometers of atmosphere. (The detector I work on is under 1.5 km of ice as is still constantly bombarded with muons.) It's tough to stop things that come at you with energies of more than a Joule, packed into a single particle. Sorry harehunter, I know you wanted to discuss bio-chem now, but particle astrophysics grabs my attention.
  12. Quote: no1 can't catch alorael. But Alorael is the number one poster. That would mean he posts so fast, not even he can catch himself.
  13. Quote: In other words, if I interpret you correctly, space is not truly a vacuum, since there is matter, albeit sub-atomic matter, that pollutes the otherwise rarified volume. And since you mentioned 'spectrum', that reflects (no pun intended this time) on the presence of light, a form of energy which can behave like a particle. The first part, yes. There's a bunch of matter at different temperatures, emitting various black-body spectra. (There's also non-thermal emission from processes like synchrotron radiation and inverse Compton scattering.) Clearly, then, there's no single temperature that describes it all. I'm not sure what the significance of the quantization of light is, here, though (besides the fact, which I hadn't previously mentioned, that Planck's law is derived from the quantization of radiation). Somewhat amusingly, though, it's worth noting that without some matter present, it is difficult or impossible for the radiation present in a vacuum to come to thermal equilibrium by itself. Quote: I am being completely serious when I ask, "Does light have mass?" I suppose it can be argued that according to Einsteins' formula, E=MC2, light has the *equivalence* of matter. That being said, it might be surmised that space is not truly a vacuum. No, light doesn't have a mass, and doesn't need to, as seen by looking at the entire formula: E^2 = p^2c^2 + m^2c^4 . Light has energy, so it must have either mass or momentum, and in fact it always has just the right amount of momentum to require no mass at all. Your point about a vacuum being imperfect if it contains any mass or energy is a perfectly good one, however. One could then take the view that a perfect vacuum is a very fragile thing, since as soon as you wrap it around your hot liquid to keep it from leaking heat to the cold surroundings (or wrap the vacuum around the hot surroundings to keep them form leaking heat to your cold liquid) whichever side is hot will start radiating and contaminate your vacuum, and once your vacuum is contaminated it's no wonder that heat starts leaking!
  14. Quote: How would you be able to measure the heat of a vacuum? Just measure the spectrum of the radiation. SInce there is a direct, known relationship between the temperature and the spectrum, computing the temperature is then easy. Astronomers do this all the time. For example, this is how a temperature is assigned to the CMB. I was going to to go on to say that this is basically the temperature of the vacuum of space, except that this isn't quite correct, as evidenced by the presence of other radiation in the universe which doesn't fit the single Planck distribution of the CMB. Clearly, the universe's vacuum isn't in thermal equilibrium. (And no surprise, since it's contaminated with a bunch of baryonic matter, and also some charged leptons. We should get rid of those.) Quote: keeps hot liquids hot while still being able to keep a cold liquid cold. If this is your goal, a passive dewar with no knowledge of its internal temperature is already sufficient, however.
  15. I'm afraid that probably the only person who can sort this out is Arancaytar (creator of the Blades Forge), and he's too busy to check in here very often. If all you need is a temporary place to upload your scenarios, there are a number of us who have our own websites and could help out by hosting your files. I, for one, will volunteer to do so.
  16. Quote: I can see there being more force on corners and edges, or at least the sum of more than one force vector from pressure against different faces, but why would there be less pressure on the center of a face than on any other part of the edge? Surely the point is that the force is the same, but the centers of the faces are weaker and will collapse under a smaller force? Quote: Alorael, who doesn't think the Hindenburg just avoided metal for weight. He also somehow suspects that surrounding hydrogen with metal would be a bad idea, which was part of the thinking behind the original rigid airship materials. Zeppelins did use metal skeletons, for exactly the same reason that most modern airplanes are metal: you want a good strength-to-weight ratio for your structure. I think that sparks jumping to or from the frame was a concern, and has been suggested as the cause of the Hindenburg disaster. I'm not sure if you're suggesting that there would be chemical implications, but the hydrogen wasn't directly in contact with the metal, since it was in bags made of Goldbeater's skin. (Perhaps that was part of what you were getting at though. ) Originally Posted By: SoT I guess you could do the same thing with hot vacuum. . . I love this idea, and all the more because of its total impracticality. It's a sort of stellar balloon, supported against the air by radiation pressure just as stars are against gravity.
  17. The simple answer is that the percentage protection values shown on the statistics screen are nonsense, or at best only loosely connected to the character's true resistance values. I don't know if it is known precisely or quantitatively, but the true resistance, used when the character takes damage, is generally understood to asymptotically approach some value which is less than or equal to 100%.
  18. Originally Posted By: Acteon No corner drug store or butcher in the suburbs. That makes no sense. I just drove home through an area consisting mostly of houses on their own plots of land and passed both of those things. The drugstore was a chain drug store (and they tore down my preferred gas station to build it), but still, light commercial areas are a perfectly normal thing to have in suburban areas. I think your characterization is overly narrow and probably based observing housing developments built in the last few decades. These are frequently vast areas containing nothing but private homes, and inside one you can be a number of miles from the nearest business. This is very different from the suburbs where I grew up, which were built about a hundred years ago with a much finer granularity of districting. In fact, I think the nearest business to my parents' house in an architecture firm, which occupies the old train station about five blocks away. The nearest grocery store was in a commercial area about eight blocks away for many years, until the chain to which it belonged was bought out by another and shut down. I would say that Dantius is on the right track with his definition, but it still needs a bit more refinement, since, for one thing, it encompasses rural areas as well. (After all, if you live on a farm you definitely have land of your own which is like a yard, but larger. You probably have a yard, too.)
  19. Is there a reason not to set up the laptop to dual-boot without getting the desktop? (I suppose the need for hard drive space for a second OS might be one.) I'm very much one-computer person; I have one good laptop at a time which I use for everything. The advantage that I like is having everything I use with me, all the time. The main disadvantage, however, is that for this to work it needs to be a fairly nice, and therefore somewhat expensive, laptop. It sounds like this route isn't necessarily one in which you would be interested. It's also worth noting that if you want a POSIX compatible OS you do have plenty of options besides Linux. I favor Mac OS, there are also the various flavors of BSD. They all play pretty well together, leaving Windows as the funny, incompatible one.
  20. Originally Posted By: Earth Empires http://news.cnet.com/8301-13579_3-57317458-37/apple-sandbox-those-mac-apps/ that might make gamemodding wee bit hard. Yep, it sure would. In fact, the security systems present in Snow Leopard (which I'm still using) are already enough to cause annoyance in some cases. For instance, Apple made iTunes really ugly (uglier, anyway). I can fix it by replacing the icon and various graphics resources, but if I do, its checksum no longer matches, and every time I run it I get pestered about whether I really want to trust it with access to the network. As a person who writes his own programs every day (many are trivial, one-shot test programs, but some are for other people to use too) I'm deeply suspicious of all of this App[lication] Store, code signing, and sandboxing stuff. I do appreciate that the security benefits are important, but this is my computer and it will run the software I say it should run. If Apple really does someday lock down Mac OS as much as, say, present-day iOS, I'll switch to something else, even though it will likely be at the cost of having what I consider a usable GUI.
  21. Continuing subthread: Click to reveal.. Quote: Splitting up .cc and .h files for template classes: Yeah, I've seen that trick, but I wanted a magical (non-existent) way to do it in general. Mostly, I just hate the huge recompilation times whenever I change my implementation in the header file, but I can often avoid that by making a non-template abstract superclass. Good practice is to program to an interface anyway. Using an abstract base class and a template class which inherits from it is a very common idiom, although I don't know a name for it. (It might be listed somewhere in More C++ Idioms somewhere though. There's some very nifty stuff in there, although the large unfinished swathes are a bit maddening.) Quote: Yeah, I know pure virtual template functions are impossible. As for my use case: I've got game playing algorithms that play arbitrary two-player zero-sum games. I've got a Board class that takes X and Y as template parameters, to specify the dimensions of the board. I'd like to subclass Board for specific games, but you can't have virtual functions inside a template class. I can get around this by using has-a relationships instead of is-a relationships, but it's still a bit cludgy. What I should probably look into is making Board not be a template class, and dynamically allocating the bitboard. But I don't know what the performance hit would be like. It's not terribly clear to me why defining the size of the board statically is particularly useful to you; about the only thing I can immediately think of the it might enable would some loop unrolling and the like. Assuming you don't make board objects left and right it should be a problem to allocate the storage on the heap, right?. (And if it is, there's always alloca. ) Quote: Times like these I miss the type system in Java. An object's type is itself an object. All classes descend from one class. And generics in Java use type erasure, so you can do a lot of things with generics that templates can't do (at the cost of stuff like template specification, which I never use anyway). Being able to construct a type with something other than a type-declaration would occasionally be nice, but I've very rarely found myself desiring to do such a thing. Having everything descend from a single base type has never seemed very useful to me. Using this is frequently frowned on in Java now anyway, and it's only done in a half-baked way, since Java still has primitives which aren't objects. If you really like this sort of thing, though, you can always create your own ultimate base class in C++ and derive everything from it; I've seen various frameworks which do. Java generics, though? Blech! Okay, to be fair I'm not actually familiar with what the fancier features of generics in Java can do, but my impression was always sort of the reverse; generics felt wimpy and underdeveloped. . . (Watch in awe as I try to teach myself Java generics in order to critique them, thus making a total fool of myself, before your very eyes!) Wildcards appear to do mostly what concepts do in C++, except that in C++ so far concepts exist only in documentation for humans and in the deductions made automatically by the compiler during template parameter substitution. It would be nice to have formal syntax for them, but they function today (if a bit clumsily, at times) without it. Code: void printCollection(Collection<?> c) { for (Object e : c) { System.out.println(e);}} is roughly equivalent to: Code: template <typename T>void printCollection(const T& c){ for(const typename T::value_type& i : c) std:cout << i << std::endl;} (I added the requirement that the collection have a member type that describes what type it holds, but hopefully you'll agree that that's pretty trivial, given that C++ containers are homogeneous by convention.) And while I can't do this in Java: Code: Collection<?> c = new ArrayList<String>();c.add(new Object()); // compile time error In C++ I can: Code: template <typename T>void addNewToCollection(T& t){ //Look what I can do with types that I haven't erased! t.push_back(typename T::value_type());} Bounded wildcards achieve the same thing as enable_if in C++. Sadly, the syntax surrounding the use of enable_if is ungodly, but it does work, and once you become familiar with it, it actually can become possible to read. Code: template <typename T>void onlyDrawShapes(T& t, typename boost::enable_if < boost::is_base_of<Shape, T >, void>::type* = NULL){ t.draw();} In C++, though, I can write an enable_if with any condition I want, not just one based on inheritance (is_enum, is_function, is_floating_point, has_trivial_constructor, is_convertible, just to pick some interesting ones from those available in boost). Template specialization is a powerful tool, since it enables things like static selection of different variants of a function depending on arguments types, and combining it with enable_if allows for some very nifty stuff. Basically, it gives you another mechanism akin to function overloading. Above, I wrote addNewToCollection in terms of push_back, which works for (using namespace std; ) vector, deque, and list, but not set or queue. With partial specialization I can fix that: Code: template <typename Element, typename UnderlyingContainer>void addNewToCollection(std::queue<Element, UnderlyingContainer>& t){ t.push(T());}template <typename Key, typename Compare, typename Allocator>void addNewToCollection(std::set<Key, Compare, Allocator>& t){ t.insert(Key());} With more work (using enable_if) I could probably fix this generically for any type which has a push member function, and any type which has an insert member function. Here's one that's actually somewhat useful (it might be overkill, but it was more fun to teach myself to do this than to study the integral promotion rules): Click to reveal.. Code: //A helper function for safely testing whether a particular value of some source integer type //can be losslessly converted to another target integer type////Example:// To test whether the current value of an integer of type int16_t can be safely converted// to uint8_t:// int16_t someVar;// ...// if(inRange<uint8_t>(someVar))// //someVar can be safely converted to uint8_ttemplate<typename TargetType, typename SourceType>typename boost::enable_if_c <!std::numeric_limits<SourceType>::is_signed,bool //if the enable_if succeeds, this is the return type>::typeinRange(SourceType i){ return((boost::integer_traits<TargetType>::const_max>=boost::integer_traits<SourceType>::const_max) || (i<=SourceType(boost::integer_traits<TargetType>::const_max)));}template<typename TargetType, typename SourceType>typename boost::enable_if_c <std::numeric_limits<SourceType>::is_signed && !std::numeric_limits<TargetType>::is_signed,bool //if the enable_if succeeds, this is the return type>::typeinRange(SourceType i){ if(i<0) return(false); return((std::numeric_limits<TargetType>::max()>=std::numeric_limits<SourceType>::max()) || (i<=SourceType(boost::integer_traits<TargetType>::const_max)));}template<typename TargetType, typename SourceType>typename boost::enable_if_c <std::numeric_limits<SourceType>::is_signed && std::numeric_limits<TargetType>::is_signed,bool //if the enable_if succeeds, this is the return type>::typeinRange(SourceType i){ if(i>=0) return((boost::integer_traits<TargetType>::const_max>=boost::integer_traits<SourceType>::const_max) || (i<=SourceType(boost::integer_traits<TargetType>::const_max))); return((boost::integer_traits<TargetType>::const_min<=boost::integer_traits<SourceType>::const_min) || (i>=SourceType(boost::integer_traits<TargetType>::const_min)));} And let's not forget: Templates are turing complete. That just gives rise to too many wonderfully horrible possibilities to possibly be able to forgo. Am I missing something? I actually thought before skimming that document that there were more things Java generics did. Were more added in 1.6? While I'm ranting, some other parallels between recent Java and C++ additions which I notice: The new auto is just the reverse of the diamond operator. (It seems superior to me, in fact, since it can also be used in many situations besides merely avoiding repetitively stating template parameters.) Language support for collections in Java is targeted at the same problem as C++ initializer lists. Anyone who wants to can write a class which can be constructed from an initializer list; it isn't clear to me whether the Java syntax feature has the same underlying generality. Automatic Resource Management - Java is still attempting to correct for the lack of deterministic destructors. Binary literals in Java; user defined literals in C++ Unsurprisingly, both sets of language designers are discovering the same sets of problems, and solving them in similar ways. Um, yeah, chess! I'm no good at it.
  22. Thanks to construction workers not once but twice cutting the optical cables to my apartment complex, my internet connection is now a factor of more than six slower than it was two months ago. Interestingly, my upload speed comes out substantially higher than the download speed (15 Mb/s down, 21 Mb/s up). EDIT: I find that, depending on the server, I get upload speed measurements as high as 44 Mb/s, and download speeds as high as 24 Mb/s. These test seem to be dominated by differences in network details and topology far away, and apparently the local replacement hardware isn't necessarily as bad as I had thought.
  23. Quote: What if, in anticipation of that punch, future you trains to become a blackbelt? And brings a taser? Future Dintiradan will surely remember, however, the basic usefulness and importance of the doppelgänger test, and will use his expectation (and possibly his blackbelt unarmed combat skills) to dodge, or non-harmfully disable Past Dintiradan. That is, unless he's worried about doppelgängers who would attack him on sight, not to mimic Past Dintiradan, but simply because they plan to kill him and take his place. I'm glad I don't have such dangerous life as the Dintiradans.
  24. Spoiler, because this is all a response to Dinti's aside and has nothing to do with the thread topic. Click to reveal.. Originally Posted By: Dintiradan C++ aside: Niemand, you've been working with C++ far longer than I have. Is there some way to write a template class, but still split it into .cc and .h files? I think my executable size is ballooning because I've got all my code for template classes inside my header files. Your executable will end up the same size no matter how you split up the code, since every unique instantiation of each template has to be linked in in the end. You can move template definitions out of headers (which will reduce compile time, since only one translation unit will take the hit of having to compile that template) if you can ensure that other TU's don't need to actually see inside the template. A good way to do this is that if you know you'll be using certain instantiations, declare both the template in the header, then implement the template and instantiate it as needed in the implementation file. An example: Click to reveal.. Code: // foo.htemplate <typename T>class Foo{private: T t;public: Foo<T>(const T& t):t(t){} T foo();};// foo.cpp#include "foo.h"template <typename T>T Foo<T>::foo{ return(t+5);}//only cases of Foo I expect to ever needtemplate class Foo<int>;template class Foo<double>; Clearly, this won't work if you really wanted to frequently instantiate Foo with a wide variety of parameters; but if you know that your program will only ever need a couple of cases this works. Quote: Also, I'd like a magical way to have a pure virtual template function. I can just barely imagine why you might want such a thing, although I never have previously myself. Unfortunately it's not hard to imagine why implementing such a thing would be hellish; a given class could end up with a different vtable in each translation unit, and you would have to either find some way to reconcile them (at link time?) or give up having static vtables. One might, with some work, manage to simulate this by composing one's own vtable structure sort-of dynamically but there are several tricky issues that I haven't tried to think through. Quote: Also, concepts should have remained part of the new standard. I know Realistically there were some problems, and though I don't recall exactly what the two differing camps were, I remember that I mostly agreed with Stroustrup's position, but still saw that the other side brought up some important points that didn't seem like they could be ignored. In the end, nobody had a single, cohesive system by which concepts should work that addressed all the problems, so it had to be let go. I'm hoping that by 2016 we'll have been able to resolve this and the next version can have them put in. I think it's going to help that there are now multiple people I know of who are tinkering with implementing concepts and so will actually be able to say what works well and what doesn't.
×
×
  • Create New...