Jump to content
zerosnake0

Ace3 vanilla version

Recommended Posts

Hello, everyone, this is a topic for those who are interested in AddOn developing. I started learning Ace2 Library two months ago and started to analyse the source code. And when I searched the internet I saw Ace3 of retail WoW. So I asked myself, why not port it back to vanilla?

 

Thanks to the great job of the Ace dev team, the code didnt give me much trouble to make it compatible to work with vanilla WoW, I wished to give them some error feedback on the wow-ace site but was not able to register.

 

After 3 weeks of work, I finally got a beta version with all working codes except AceGUI library. And I also wrote a test addon to test the correct behavior of the library.

 

You may think the Ace2 lib is enough for your addon and it costs too much to rewrite your code for a Ace3 version or to study the Ace3 lib. It's all your choice. I just give another possibility to those who are interested. And I also believe the Ace3 has some advantages comparing to Ace2, for example more accurate timer (well, not so accurate but I think the implementation is better than that in Ace2)

 

The library repo:

https://github.com/zerosnake0/Ace3v

 

The library test repo:

https://github.com/zerosnake0/Ace3test

 

The original library is developed by the Ace dev team, I apologize if the team member consider this backport not appropriate.

Share this post


Link to post
Share on other sites

i rarely use any ace libs, whats the big benefit to ace2?

 

i mean, what can i do with ace3 that is not possible with ace2? whats with other libs like banzai, rosterlib fubar, healcomm? they are not useable with ace3 i guess?

Share this post


Link to post
Share on other sites

i rarely use any ace libs, whats the big benefit to ace2?

 

i mean, what can i do with ace3 that is not possible with ace2? whats with other libs like banzai, rosterlib fubar, healcomm? they are not useable with ace3 i guess?

 

I happened to ask the same question. I found http://old.wowace.com/Differences_from_Ace2_to_Ace3 which states several improvements.

 

I haven't used Ace libs much either, Dongle has been sufficient for my work.

 

Thumbs up for the backport, I might use it at some point :)

Share this post


Link to post
Share on other sites

i rarely use any ace libs, whats the big benefit to ace2?

 

i mean, what can i do with ace3 that is not possible with ace2? whats with other libs like banzai, rosterlib fubar, healcomm? they are not useable with ace3 i guess?

 

Yes, it is unfortunate that the Ace2 and Ace3 are not compatible (and I think it will take too much work to make them compatible)

 

Here is a list of comparaison

 

https://github.com/zerosnake0/Ace2/blob/master/README.md

 

Ace is a lib that has been developed from the very begining of the game, so Ace3 maintains most of the features of the Ace2.

 

Personally, I think it has some following advantage:

 

1. The AceLibrary-2.0 has some codes with data transfer of one table from another table that may sometimes cause problem (even rare), that's no longer the case in Ace3 (If you code in Ace3 style)

 

2. The codes seems to be clearer

 

3. It give a simple GUI implementation which can be used with AceConfig and AceDB etc, this makes it easy for you to store your addons settings with character profile, it will create the option frame for you. So you can concentrate on UI developping

 

To be noted that the AceGUI shares the frames so it will reduce the memory usage of frames.

 

(PS: This part of lib is still under dev, will be available soon with example)

 

4. AceTimer has better implementation

 

5. AceSerializer can let you transfer data structures between players.

Edited by zerosnake0

Share this post


Link to post
Share on other sites

I happened to ask the same question. I found http://old.wowace.com/Differences_from_Ace2_to_Ace3 which states several improvements.

 

I haven't used Ace libs much either, Dongle has been sufficient for my work.

 

Thumbs up for the backport, I might use it at some point :)

Thank you for the link :P

 

I will appreciate if people can take a look and have a try at it, it will help me to find the bugs and improve the code

Share this post


Link to post
Share on other sites

I wish you brought that out like 2 years ago when I started developing. DPSMate could be a little more performant now.

 

Oh well...

 

Nice to see the vanilla addon scene growing!

 

cheers!

Share this post


Link to post
Share on other sites

I wish you brought that out like 2 years ago when I started developing. DPSMate could be a little more performant now.

 

Oh well...

 

Nice to see the vanilla addon scene growing!

 

cheers!

 

:P well i hope that too but I started to learn addon dev when i began to play on Nost so~

 

And I'm very interested by your DPSMate and maybe I can give some Chinese translate to it or port it to Ace3 as some kind of experiment

Edited by zerosnake0

Share this post


Link to post
Share on other sites

Uff, chinese translation huh?

 

Nice to have I guess, but I couldn't translate Legacy Logs to chinese. Also all these multibyte characters are kinda a pain^^

 

You would have to translate not only the interface but also the parser, because I don't understand the chinese grammar.

 

But ya if you have I'd say a day of boredom, hit me up :>

 

cheers!

Share this post


Link to post
Share on other sites

@zerosnake0 Hi zero, interesting work

 

can i ask if this is backwards compatible with older addons? Like could we re-code older addons to use Ace3 instead of Ace2 would they transition without issue?

 

Maybe it would offer improvements -- maybe not? :P

 

I am mostly just a novice developer and curious to learn addon programmijng with nost's re-release

Share this post


Link to post
Share on other sites

@zerosnake0 Hi zero, interesting work

 

can i ask if this is backwards compatible with older addons? Like could we re-code older addons to use Ace3 instead of Ace2 would they transition without issue?

 

Maybe it would offer improvements -- maybe not? :P

 

I am mostly just a novice developer and curious to learn addon programmijng with nost's re-release

 

I think you can recode most of the Ace2 addons with the Ace3 lib, the interface does not change much. You can check my list of comparison of 2 and 3 for the correspondance:

 

https://github.com/zerosnake0/Ace2/blob/master/README.md

 

But surely it will take a bit of work, and some useful lib other than Ace3 is still in Ace2 version, I will try to recode them in Ace3 too if I have time

 

As for the improvement, I think it won't accelerate you addon too much because it depends mostly on the WoW client but not the lib itself

 

You can check the previous post I wrote in this topic for my opinion on the difference between 2 and 3

Edited by zerosnake0

Share this post


Link to post
Share on other sites

I think you can recode most of the Ace2 addons with the Ace3 lib, the interface does not change much. You can check my list of comparison of 2 and 3 for the correspondance:

 

https://github.com/zerosnake0/Ace2/blob/master/README.md

 

But surely it will take a bit of work, and some useful lib other than Ace3 is still in Ace2 version, I will try to recode them in Ace3 too if I have time

 

As for the improvement, I think it won't accelerate you addon too much because it depends mostly on the WoW client but not the lib itself

 

You can check the previous post I wrote in this topic for my opinion on the difference between 2 and 3

 

Cool, i will definitely check it out.

 

Also, since you mentioned you only recently began addon programming, I wanted to ask you: do you have any recommendations for a guide on beginning LUA scripting, specifically for WoW addons and macros? 

 

As a frame of reference I have some background in programming (Javascript/Python/and little bit of C++)

 

Like one thing i notice when going through older addons (to familiarize with syntax) is that they all have XML files, but Rhena/Aviana's Questie doesn't -- is it not necessary? Does it simply boil down to the advantage of not having to learn XML and LUA?

Edited by thurmanmerman

Share this post


Link to post
Share on other sites

Like one thing i notice when going through older addons (to familiarize with syntax) is that they all have XML files, but Rhena/Aviana's Questie doesn't -- is it not necessary? Does it simply boil down to the advantage of not having to learn XML and LUA?

 

Making frames with lua was intruduced in patch 1.10 thats why older addons have XML for frames

 

Most addon devs are writing their addons without XML frames nowadays, imo it has a better overview and less writing = less mistakes :)

 

the benefits of useing "lua frames" is that you can create them very variable, the benefits of useing XML is that you create "virtual" templates that you can reuse...

basically the whole blizzard frames in FrameXML is based on XML + lua and therefore its a must-have to know how the XML frames are working

Edited by Renew

Share this post


Link to post
Share on other sites

I do not know much English, but I understood that Ace 3 newer library, and it allows you to run the addons that are not working on vanilla, and were issued in BC?

Share this post


Link to post
Share on other sites

Making frames with lua was intruduced in patch 1.10 thats why older addons have XML for frames

 

Most addon devs are writing their addons without XML frames nowadays, imo it has a better overview and less writing = less mistakes :)

 

so you're in favor of not using XML or ...?

 

basically the whole blizzard frames in FrameXML is based on XML + lua and therefore its a must-have to know how the XML frames are working

 

Are you referring to the built in blizzard frames? Sorry I'm still pretty new to addons and haven't yet wrote anything myself

 

Do you feel it's necessary to understand how blizzard implemented their frames in order to be able to write an addon? XML seems fairly straight forward, but if I can live without learning another language I will ;D

Share this post


Link to post
Share on other sites

Cool, i will definitely check it out.

 

Also, since you mentioned you only recently began addon programming, I wanted to ask you: do you have any recommendations for a guide on beginning LUA scripting, specifically for WoW addons and macros? 

 

As a frame of reference I have some background in programming (Javascript/Python/and little bit of C++)

 

Like one thing i notice when going through older addons (to familiarize with syntax) is that they all have XML files, but Rhena/Aviana's Questie doesn't -- is it not necessary? Does it simply boil down to the advantage of not having to learn XML and LUA?

 

I think Renew has answered the most part of it, all things done with xml can also be done with pure LUA.

 

And for the recommendation of LUA guide, I think you will not encounter much difficulty if you have python experience. And I think the lua.org is usually enough, but be care that the vanilla wow use a subset of the lua 5.1 version. So check the wow wikia and wowprograming sites for the references, and test them by runing the codes in game.

 

Also it is a bit different from the LUA nowadays. I also mentioned some of them in my link of the comparison of Ace2 and Ace3

 

https://github.com/zerosnake0/Ace2/blob/master/README.md

 

So if you compare my rework of the Ace3 lib, I have changed some internal codes to make it more suitable for the vanilla wow. I'm not sure if I am doing correctly, we will find it out if it will be widely used.

Edited by zerosnake0

Share this post


Link to post
Share on other sites

so you're in favor of not using XML or ...?

 

Yes :)

 

 

Are you referring to the built in blizzard frames? Sorry I'm still pretty new to addons and haven't yet wrote anything myself

 

Yes :) The build in blizzard frames are inside of http://vanilla-wow.wikia.com/wiki/FrameXML

 

 

 

Do you feel it's necessary to understand how blizzard implemented their frames in order to be able to write an addon? XML seems fairly straight forward, but if I can live without learning another language I will ;D

 

You dont have to know how the blizzard frames work but if your addon does something that is connected to the blizzard functions or frames (wich can happen often) you have to know where to look for :)

Share this post


Link to post
Share on other sites

Nice work! I'll probably end up making use of this at some point. As others have said its great to see more people active in the addon community :D

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×