RMDC #1: Dynamically Ordered Choice Selections

Discussion in 'Code-Off Challenge' started by Tsukihime, Dec 11, 2014.

    Tags:
  1. Balrogic

    Balrogic Veteran Veteran

    Messages:
    40
    Likes Received:
    17
    First Language:
    English
    I've submitted my solution over at HimeWorks. Really enjoyed that challenge, I hope it isn't long until the next one. Mine is 100% scripting, the only event conditions I used were script calls and a handful of ordinary transfer events that use a self-switch to prevent multiple registration of the same teleport destination.

    The script ought to be fairly self-explanatory if anyone's interested.

    http://pastebin.com/AzwyVmC1
     
    #21
    Venka and Tsukihime like this.
  2. Tsukihime

    Tsukihime Veteran Veteran

    Messages:
    8,230
    Likes Received:
    3,047
    Location:
    Toronto
    First Language:
    English
    I tried the demo and it's pretty smooth. Even has transfer effects.


    I was curious to see how someone would approach the choice selection using pure scripting, since I'm mainly focused on how to do as much as possible using events.


    A good point is the fact that it piggybacks on existing functionality, so if someone's customized how their choice window looks, they don't have to worry too much about consistency (as opposed to providing your own choice window, which may need to be modified)


    Looking at the teleport method, it also shows something else: any event can be written as a script. Because, well, that's how events work.


    This also suggests that you could potentially make a more efficient interpreter by first pre-processing the event commands into the equivalent ruby script, and then when an event is executed, run the proc. Rather than using an interpreter to interpret another language, just use the ruby interpreter directly.
     
    #22
  3. Balrogic

    Balrogic Veteran Veteran

    Messages:
    40
    Likes Received:
    17
    First Language:
    English
    That's not even the best part... I think if I do a little (okay, probably a lot at my level of experience) research I can fully automate the process. Automate the case generation, automate the method generation, automate the destination lists, set up an approach for handling really big lists by selections of range values and ultimately craft something that runs off a couple script calls with zero manual configuration. All the user would have to do is insert script calls to tag any area they want to add to the teleportation matrix. By entry or by just running a script call in an event to set that specific location as a drop-off point.

    I almost gave up partway through making that demo. I hit a roadblock I didn't know how to get around. Started thinking of coding a framework to dynamically inject new items into RPG::EventCommand lists by event and map and the thought was so depressing that I kept trying to go back to the original approach before I even started with the "real solution" to it.
     
    #23
  4. Ralpf

    Ralpf Veteran Veteran

    Messages:
    597
    Likes Received:
    152
    Location:
    Sparta, TN
    First Language:
    English
    I feel you, felt the same way eventing a farming system, I had something that worked but I didn't want to have to deal with the myriad of switches and variables involved (It was something on the order of 1000-1500 switches and variables). Took forever until I managed to subvert my original approach, managed it with 50 variables and 100 switches, and only 1 parallel processes instead of 46-ish.

    @everyone In scripting or eventing (really, anything) if you hit a problem that you can't solve, maybe you are approaching it from the wrong direction to begin with, the simplest solution may be alluding you because it wasn't your first thought. I don't really know a way around that (I feel it's simply human nature, much like even the best writers need a proof-reader, it's hard to find flaws in your own work), but maybe try to look at something else similar you or someone else has done, or move on and try to do something else, anything to get your mind off that track.

    Also, I need to learn Ruby, I'm far from an expert but I have experience with Java and C# so I think I have a little bit of a leg up over a complete novice. Some of these systems are simply better to script, even if they can be evented (Not that knowing how to event them isn't worth while).
     
    Last edited by a moderator: Dec 28, 2014
    #24
    Venka likes this.
  5. Balrogic

    Balrogic Veteran Veteran

    Messages:
    40
    Likes Received:
    17
    First Language:
    English
    So, hit up Code Academy or a few other tutorial resources. You should definitely pay attention to the Ruby style guide as it never hurts to use accepted best practices for a language. I certainly won't be shy about learning new language specific style when I eventually add C++, Python or Java to my list of languages. I didn't even start Ruby until the end of August this year and it's my first programming language. Before that I only had experience making simple game modifications and the occasional memory state based hack on single player games though I did pull off some really outlandish stuff. If I play your game and want to dual-wield radishes and wear a garbage can helmet there's no stopping me. Okay, well, some stopping me. Very rarely people will include obtuse anti-tampering mechanisms that constantly reassign the location of memory addresses as their game runs. I start losing interest if I need to disassemble a program just to do one or two really stupid things I can do through normal gameplay as-is.
     
    #25
  6. Tsukihime

    Tsukihime Veteran Veteran

    Messages:
    8,230
    Likes Received:
    3,047
    Location:
    Toronto
    First Language:
    English
    A couple of the demos that were created were really impressive. It was like playing a game by itself.


    I'm thinking of what can be done to share them. Maybe they can be officially hosted as "demos" to show how certain things can be accomplished.
     
    Last edited by a moderator: Dec 31, 2014
    #26

Share This Page