User Tag List

Page 1 of 3 1 2 3 LastLast
Results 1 to 10 of 30

Thread: I have a dream!

  1. #1
    Here lies mero. Died by his own dumbassitude.
    Join Date
    May 2011
    Posts
    929
    Mentioned
    102 Post(s)
    Tagged
    2 Thread(s)
    vBActivity - Stats
    Points
    5,527
    Level
    23
    vBActivity - Bars
    Lv. Percent
    13.96%

    I have a dream!

    @Saffith @Gleeok
    I have a dream fellow programmers. That we drop this convulted angelscript mess. It's way too funky like that, and it's broken way too many things. We broke shops for crying out loud. Nobody ever does that.
    I'm sorry to say this, but angelscript needs to be tossed in the trashcan. Which of course means back to square one. 1 step ahead, and 5 steps back. :<

  2. #2
    The Timelord
    QDB Manager
    ZC Developer

    Join Date
    Oct 2006
    Location
    Prydon Academy
    Posts
    1,396
    Mentioned
    112 Post(s)
    Tagged
    1 Thread(s)
    vBActivity - Stats
    Points
    4,760
    Level
    21
    vBActivity - Bars
    Lv. Percent
    68.72%
    I pretty much anticipated problems like that, and I made it a point months ago to make a stand to continuing the 2.x line, rather than halting its evolution towards 3.x, and blindly forging ahead to v3....Right now, as i understand the plan, we've rolled back (or are in the process of rolling back) to 2.6 flat. The three of us who were working on this, pretty much vocalised our desires, and now we're all on the same page.

    May I suggest that you consider working on improving our present scripting language, moving as much as we can to variables, via setters/getters; and making 2.x as good as it can be for the present? The rest of us are on that page right now, and there is no reason that we can't add other scripting languages into ZC later on, using exactly the same basic internal vars and functions.

    In fact, some of my parser modifications, and planned additional modifications, are for the strict purpose of allowing various forms of syntax.

    I've already started adding things to ZScript that would, ultimately, make it as versatile as AngelScript, and more modernised. We need
    people willing to collaborate on that, and there are three to five of us who are already doing that, albeit slowly. The pace will improve, the more that we accomplish, but it'd be nice to be able to delegate tasks to specific individuals, all based on their own personal goals, and expertise.
    The basic idea is that any environmental factor can be modified by the scripting interface. I think that, bit by bit, we can accomplish that goal, without major paradigm shifts.

    I know that you want ZC to move away from Allegro 4. I can even share that goal---to an extent--but that is an incremental process and we're simply not ready to jump into that at present.

    I have also suggested working with the allegro 4 basecode directly, to make our own modified version that fixes some of the present flaws, as a stopgap. Migration to some custom engine really isn't viable right now; and migration to ag5 is a huge pain in the arse; but we do have a plan of sorts that pretty much everyone is on-board with, so perhaps you'll want to be a part.

    All that said, you're a talented individual, and there's no reason that you can'twrite up whatever you want on (as a fork), and perhaps we can work with some of it, if you are adamant about your model. Hell, you can always release your own ZC version that is entirely custom, and if people like it, they'll use it.

  3. #3
    Here lies mero. Died by his own dumbassitude.
    Join Date
    May 2011
    Posts
    929
    Mentioned
    102 Post(s)
    Tagged
    2 Thread(s)
    vBActivity - Stats
    Points
    5,527
    Level
    23
    vBActivity - Bars
    Lv. Percent
    13.96%
    Either that or we come up with a Plan B for implementing it. Because replacing the most complex thing "enemies" has not been easy. ASUpdate returns false for some reason.
    As for your question. I do both.

  4. #4
    Here lies mero. Died by his own dumbassitude.
    Join Date
    May 2011
    Posts
    929
    Mentioned
    102 Post(s)
    Tagged
    2 Thread(s)
    vBActivity - Stats
    Points
    5,527
    Level
    23
    vBActivity - Bars
    Lv. Percent
    13.96%
    @ZoriaRPG
    You might recognize this from weapons.cpp It's the mirror shield reflection code. Except I modified it to work for enemies. Darknuts with Mirror Shields need to become official.

    Code:
        if(special==3)                                            // hit an enemies mirror shield!
        {
            switch(id)
            {
    		case wRefFireball
    		{
    			id = wRefFireball;
                ignoreLink=false;
                goto reflect;
    		}
            case wRefRock
    		{
    			id = wRefRock
                ignoreLink=false;
                goto reflect;
    		}
    		case wBeam
            case wRefBeam:
    		{
    			id = wRefBeam
                ignoreLink=false;
                goto reflect;
    		}
            case wMagic:
            case wRefMagic:
    		{
    			id = wRefMagic
                ignoreLink=false;
                goto reflect;
            }   
            case wScript1:
            case wScript2:
            case wScript3:
            case wScript4:
            case wScript5:
            case wScript6:
            case wScript7:
            case wScript8:
            case wScript9:
            case wScript10:
                
                ignoreLink=false;
    reflect:
    			ignoreNPCs=true;
                if(angular) switch(ReflectDir)
                    {
                    case up:
                        angle += (PI - angle) * 2.0;
                        break;
                        
                    case down:
                        angle = -angle;
                        break;
                        
                    case left:
                        angle += ((-PI/2) - angle) * 2.0;
                        break;
                        
                    case right:
                        angle += ((PI/2) - angle) * 2.0;
                        break;
                        
                    default:
                        angle += PI;
                        break;
                    }
                else
                {
    				dir ^= 1;
    				if(dir&2)
    					flip ^= 1;
    				else
    					flip ^= 2;
                }
                
                return;
            }
        }
    Ain't I a bastard? Of course that's just the weapons side of things. Got to work on the npc part tomorrow.
    Last edited by Tamamo; 03-25-2016 at 04:14 PM.

  5. #5
    Is this the end?
    ZC Developer
    Saffith's Avatar
    Join Date
    Jan 2001
    Age
    41
    Posts
    3,389
    Mentioned
    178 Post(s)
    Tagged
    6 Thread(s)
    vBActivity - Stats
    Points
    6,430
    Level
    24
    vBActivity - Bars
    Lv. Percent
    69.58%
    Quote Originally Posted by Tamamo View Post
    I have a dream fellow programmers. That we drop this convulted angelscript mess. It's way too funky like that, and it's broken way too many things. We broke shops for crying out loud. Nobody ever does that.
    What? They're fine. Maybe you're having the same issue Gleeok is, where return values aren't read correctly for some reason. That's a simple implementation issue, though, or maybe some compiler weirdness. It's not something that requires totally reworking everything.
    There may well be changes in the plan, but not because of something like that.

    Quote Originally Posted by ZoriaRPG View Post
    May I suggest that you consider working on improving our present scripting language, moving as much as we can to variables, via setters/getters; and making 2.x as good as it can be for the present?
    Variables already use setters and getters. Or do you mean binding each variable to C++ functions the way AngelScript does? That would be a fundamental change in how the script engine works. It's a lot of work, and it's not something that can be done gradually.
    How much do you think can be changed without breaking a lot of scripts? And if you're willing to do that anyway, why bother with all the extra work?

    I've already started adding things to ZScript that would, ultimately, make it as versatile as AngelScript, and more modernised.
    What? Where? I haven't seen anything like that. I see that you've been working on allowing question marks in identifiers, which is great if we want to violate our own naming conventions further and never be able to implement the ternary operator. If you've added classes, or debugging capabilities, or even just short-circuiting conditionals, I haven't seen any sign of them.

    Migration to some custom engine really isn't viable right now; and migration to ag5 is a huge pain in the arse; but we do have a plan of sorts that pretty much everyone is on-board with, so perhaps you'll want to be a part.
    Who's "everyone"? And what subset of "everyone" has any idea what's involved in all of this? I'll give you Grayswandir, at least as far as coding ability, but even he doesn't have much experience working on ZC.

  6. #6
    Here lies mero. Died by his own dumbassitude.
    Join Date
    May 2011
    Posts
    929
    Mentioned
    102 Post(s)
    Tagged
    2 Thread(s)
    vBActivity - Stats
    Points
    5,527
    Level
    23
    vBActivity - Bars
    Lv. Percent
    13.96%
    My main issue is the way the enemies are being handled.

  7. #7
    Here lies mero. Died by his own dumbassitude.
    Join Date
    May 2011
    Posts
    929
    Mentioned
    102 Post(s)
    Tagged
    2 Thread(s)
    vBActivity - Stats
    Points
    5,527
    Level
    23
    vBActivity - Bars
    Lv. Percent
    13.96%
    @Saffith
    Do you have a list of unimplemented entities. I know most of the stuff are the npcs and enemies. But what else.

  8. #8
    The Time-Loop Continues ZC Developer
    Gleeok's Avatar
    Join Date
    Apr 2007
    Posts
    4,817
    Mentioned
    259 Post(s)
    Tagged
    10 Thread(s)
    vBActivity - Stats
    Points
    12,940
    Level
    33
    vBActivity - Bars
    Lv. Percent
    24.2%
    I had a dream that nobody was confused and everybody knew what was going on and on the same page, and then lived happily ever after ...at least until the the alien invasion in 2021 wiped out all the people.
    This post contains the official Gleeok seal of approval. Look for these and other posts in an area near you.

  9. #9
    Octorok Lelouche Vi Britannia's Avatar
    Join Date
    Oct 2015
    Location
    Britannia - Area 11
    Posts
    173
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)
    vBActivity - Stats
    Points
    1,107
    Level
    11
    vBActivity - Bars
    Lv. Percent
    44.14%
    I for one welcome our alien overlords...

    And no, I'm not on the same page either. After reading this thread, I'm still not sure what is going on. I wish I had the programming skills to help you guys out, but admittedly, even if I did I'd probably still be pretty lost...
    @Tamamo Broke shops? When and how did this happen?!
    Lost my wings and grew 8 tentacles... I've seen enough Hentai to know where this is going....

  10. #10
    The Timelord
    QDB Manager
    ZC Developer

    Join Date
    Oct 2006
    Location
    Prydon Academy
    Posts
    1,396
    Mentioned
    112 Post(s)
    Tagged
    1 Thread(s)
    vBActivity - Stats
    Points
    4,760
    Level
    21
    vBActivity - Bars
    Lv. Percent
    68.72%
    Quote Originally Posted by Saffith View Post
    What? They're fine. Maybe you're having the same issue Gleeok is, where return values aren't read correctly for some reason. That's a simple implementation issue, though, or maybe some compiler weirdness. It's not something that requires totally reworking everything.
    There may well be changes in the plan, but not because of something like that.


    Variables already use setters and getters. Or do you mean binding each variable to C++ functions the way AngelScript does? That would be a fundamental change in how the script engine works. It's a lot of work, and it's not something that can be done gradually.
    (Emphasis, mine).
    What I mean, is that I plan to slowly convert the internal functions and variables (including those that are not yet usable, as well as expanding the way the engine works so that most of the present hardcoded values, become variables) into something that the setter/getter functions may read from, and write to, and I believe that I can do it in 'legs'.

    I also started some very basic implementation of the npcdata class, but @Dimentio wants to handle enemy code, and I shifted that load over to him for the present. If that proves fatal, than I'd end up doing it.

    In theory, the npcdata class would be able to read from, and write to any of the npc entries (i.e. enemy editor, and npcs not in that table), to all of their attributes. It should be possible to set up user-defined movement types, and such, as well as user-defined weapons, using this system. I'm likewise planning to complete the itemclass (itemdata) class, and the list of what I have planned is floating on the board, if you want to examine it in detail.

    How much do you think can be changed without breaking a lot of scripts? And if you're willing to do that anyway, why bother with all the extra work?
    I should be able to add most of what is on the to-do list without breaking 95% to 99.x% of existing scripts. A goal of 100% would be ideal, but I don't particularly believe in a guaranteed outcome for anything. In reality, there's no way to predict this without experimentation.

    What? Where? I haven't seen anything like that. I see that you've been working on allowing question marks in identifiers, which is great if we want to violate our own naming conventions further and never be able to implement the ternary operator. If you've added classes, or debugging capabilities, or even just short-circuiting conditionals, I haven't seen any sign of them.
    That shouldn't break (adding) a ternary operator (?:). The way that the lexer works, I should be able to add all sorts of exceptions, and inclusions to handle it. In fact, the colon mark isn't included in the IDENTIFIER definition, so it should be pretty easy to add that as an operator symbol and retain it in the IDENTIFIER definition.

    I'm having some fun adding * as a symbol to the the IDENTIFIER definition, which I can do, but I fear it would break things due to variations in user syntax. I want to add this at the head of a series of chars as a USERPOINTER, and at the end of a series of chars as an IDENTIFIER.

    Ensuring that neither of these conflict with the MULTIPLY token is another barrel of fun.

    I'll also have good practise making lexing exceptions like this, for the word-based tokens AND and OR. I'm not sure how those will turn out, and they'll take some debugging and magical trickery to permit.

    You probably haven't seen any of the files that I've updated in the past few months. I'm having nothing but headaches updating the fork that I spawned, as when I try to do a GH update, I receive errors now; so I started dumping the files to a private server, and was going to update everything in a batch, as a new fork once I have more of it done.

    My present revision of the ffscript.lpp file is r21. What is the latest that you have from me?

    Who's "everyone"? And what subset of "everyone" has any idea what's involved in all of this? I'll give you Grayswandir, at least as far as coding ability, but even he doesn't have much experience working on ZC.
    Well, aside from you, and Gleeok, those with 'experience working on ZC' have all long-since retired. The list of 'everyone', here, is as follows: @Dimentio , @Gleeok , @Grayswandir , @Samer , and @ZoriaRPG .

    @Gleeok proposed this rollback to us, after all; as well as the incremental change process. It is pretty much either this, or the rest of us just fork it, do what we want to do, and release it as 2.x, while you work on 3.x; which was our original plan. We've been discussing all of our plans, and reviewing what we'd need to do, for months.

    Granted, we may hit some stumbling points, but we're a pretty stubborn bunch of buggers, and we'll evaluate, and re-evaluate the feasibility of our plans as we progress.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
About us
Armageddon Games is a game development group founded in 1997. We are extremely passionate about our work and our inspirations are mostly drawn from games of the 8-bit and 16-bit era.
Social