Developing addins for World of Warcraft - Getting started? [closed] - plugins

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 6 years ago.
Improve this question
As a long time World of Warcraft player, and a passionate developer I have decided that I would like to combine the two and set about developing some addins. Not only to improve my gameplay experience but as a great opportunity to learn something new.
Does anyone have any advice on how to go about starting out?
Is there an IDE one can use? How does one go about testing? Are there any ready made libraries available? Or would I get a better learning experience by ignoring the libraries and building from scratch? How do I oneshot Hogger?
Would love to hear your advice, experiences and views.

This article explains how to start pretty well.
Your first bookmark is possibly the US Interface Forum, especially the Stickies for that:
http://us.battle.net/wow/en/forum/1011693/
Then, grab some simple addons to learn how XML and LUA interacts. The WoWWiki HOWTO List is a good point here as well.
One important thing to keep in mind: World of Warcraft is available in many languages. If you have a EU Account, you got an excellent testing bed by simply downloading the language Packs for Spanish, German and French. If you're an US Guy, check if you can get the Latin America version. That way, you can test it against another language version.
Once you made 1 or 2 really small and simple addons just to learn how to use it, have a look at the various frameworks. WowAce is a popular one, but there are others.
Just keep one thing in mind: Making an Addon is work. Maintaining one is even more work. With each new Patch, there may be breaking changes, and the next Addon will surely cause a big Exodus of Addons, just like Patch 2.0.1 did.

Another useful tools you might like is WarcraftAddOnStudio which lets you make plugins in the visual studio environment.

I learned the art of add-ons primarily by looking at the code of Blizzard's UI. You can see that code by extracting the default UI or finding a copy of the default UI online. Add-on developers sometimes like to over-engineer their pet projects (who doesn't?), while Blizzard's code is usually pretty no-nonsense and straightforward. In addition, Programming in Lua is a pretty useful (if slightly out-of-date) reference for the actual Lua language.

The best way to start is with the book World of Warcraft Programming. It covers LUA, XML, WarcraftAddOnStudio and the WoW API. The book also has sections on best practices and avoiding common mistakes.

Related

What is missing in Objective-C that you don't want to program with it [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 5 years ago.
Improve this question
Now that Apple relaxed the restrictions on developer tools/programs, I wonder what tempts developers to other languages than Apple offers by default, Objective-C, which is quite fun to program with. What missing feautures makes you not to program with it but something else?
Lack of Objective-C expertise or a large/complex code base in another language would be among common reasons.
Cross-platform coding might well be another.
I haven't done any iPhone development yet, but generally speaking, here's a few reasons:
Cross-platform development
The other language suits your coding style better
The other language is a better tool for the job
You are comfortable in the other language and don't have the time / budget / motivation to learn Objective-C
Existing libraries / codebase
Specific tools you might want to use
Testing some concepts in Objective-C can sometimes be kind of tedious to set up. Sometimes you just want to see how a single method works or play around with an object's functionality to see how it works.
Setting up a new project is somewhat tedious, and it's not always feasible to incorporate the test code in to a new project.
In this case, I do one of two things:
Keep an empty project around specifically for testing things
Drop down to the Terminal and use irb (or PyObjC) to play with the objects in Ruby or Python.
In a nutshell, the thing that's missing is the ability to use Objective-C in an interpreted manner. You have to use another language (like Ruby or Python) to do this.
I recently wrote some networking code in Python, then had to translate it into Objective-C for use on the iPad. A typical line of clear Python would become five or ten lines of busy-work C. I just work faster in higher-level lanugages; the language puts up less resistance, requires fewer forms to be filled out.
I have ported a couple of tiny language interpreters (for my own use, not for App store distribution) to the iPhone. This allows me to write short snippets of code on the road, without having to carry my Mac, and run them locally. I don't know of any small Objective C interpreters, and the language is not really designed for interactive use.

Can I learn the iPhone SDK and complete an app by September? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 3 years ago.
Improve this question
I'm wondering if it's realistically possible to learn the iPhone SDK and complete an app by the end of this summer. The app shouldn't be too difficult, it would just interact with my site's API and essentially just fetch, create, and edit resources. I already have a little experience with the SDK (and I'm comfortable with Objective-C), so I'm not completely new to it. Although here I things I don't know how to do and what I'd need to learn:
Log in to my site using basic http authentication and store the user's username/password for all future requests
Implement a toolbar at the bottom to navigate between different views
Fetch and parse xml into list items
Do POST/PUT requests to create/edit a resource on my server
Are there any good resources available to learn how to do those tasks above? Thanks!
You mentioned creating/editing resources on your server. If you're running Ruby on Rails on the backend, you might find Objective Resource interesting, an Objective-C interface into Active Resource:
http://iphoneonrails.com/
But back to your original question, it all depends on how polished you want the app to be. My advice is, ignore if you can do it and just get started learning. Start with the (free) Stanford iTunes U course podcast.
I learned and published in 3 months. The question is are you comfortable with Objective C (which you are) and are you familiar with cocoa and the MVC pattern?
Basically, unless you are totally new to programming, go for it!
I wrote an Android game in two weeks with out knowing Java or the Android API or that much about game programming.. But I had to copy and paste a lot of stuff from documentation examples and other available source code. It is theoretically possible to learn enough to write an iphone app in that time and build it. But it is up to you to focus and see it through, that is the hard part.
Yes - I've even done it.
I had an internship for 2 months last summer and I managed to learn objective-c and create and polish a fairly complex app within that time.
The way I did it was just to throw myself into it. I knew what needed to be done so I jumped into it. I had a quick look at some open source code for various things to see how other people did it then apply those rules to my own code.
2 important things to remember:
Google and stackoverflow are your friend, if your having trouble with something google and stackoverflow will normally have an answer.
Option, Command and double click on something in your code will open up the apple developer documents and do a search for the thing you double clicked on. This gives a really easy way to check for methods and properties in Cocoa classes.
Yes you can.
My suggestion, learn the basics first. Grab a book - I recommend "Beginning iPhone 3 Development" by Jeff LaMarche & David Mark - read most of the chapters (a few of the later ones you can probably leave for another time if you don't need them yet, but do all the earlier ones) and get your head around the essentials. Do the exercises and code as much as possible. There are plenty of learning resources around the internet too.
Then tackle your app while continuing learning. By this point you'll have fallen across & bookmarked a few relevant web links or grabbed a book or two specific to your app's needs, and it should all fall into place.
Good luck! :-)
Yes!
Other than the advice people gave, you can also check out the iPhone Application Programming course on Open Courseware. But, I warn you, it's a 45h course.
Maybe you can spend a week or so to study the Wordpress source ...
I'm doing pretty much the same thing on OSX development. This is how I tackle it:
Buy relevant books. Amazon and SO provide with the right choices, then buy alot of them and see which one fits. I found that having a good book or two and occasionally reading them outside of your programming environment can really enforce you learning proces.
Work through at least one book, the others are for elaborating on what you have learned.
Start writing you app. This can even be after only a mere week of learning the SDK. Start with globally planning the thing, and dividing it in concrete to-do's. Consider every to-do a challenge and tackle accordingly. You will very quickly learn this way.
After a while your knowledge has expanded enough to reflect. When you just started writing the app, you inevitably made some mistakes. Now is the time to fix them and let your experience work its way.
And as previously mentioned, go nuts with google and SO. Of course, posting here proves your ability to use these tools properly. Above all, have fun.
It's possible.
Don't bother investing too many resources into books, especially if you want to save money. Stanford University have put up an excellent series of lectures for free from their iphone course that will get you up to speed with iPhone development, with a few assignments to do on the side (this is good because it offers some structure to your learning)
You can find this on iTunes (it might be reasonable to skip the 'introduction to objective-c' lectures if you're already familiar with the language)
Also it might be worth pointing out that if you want to develop an app on an iPx device you need to get a Developer License which will cost you a bit of money for membership. Although working off the simulator is completely free but doesn't replace trying your app out on a physical device.
ANother suggestions is to look for opesource projects and try to use them as your training exercise. Example:
http://sourceforge.net/projects/mtgr8-a3/
http://sourceforge.net/projects/mtgr8-jigsaw/
You can get a lot of help from iTunes U. Here is a very recent class which is packed full of useful information.
https://podcasts.apple.com/us/podcast/advanced-iphone-development-spring-2010/id407243032
There is also a class from Stanford University but I find it moves along slower, but it does cover a lot of material.
https://podcasts.apple.com/us/podcast/iphone-application-development-winter-2010/id384233225
If you search for "iPhone Application Development" on iTunes you will find other classes as well. I find that these classes, along with all of the available documentation and sample code from Apple, is a great way to learn Objective-C, Xcode and iPhone development.
3 months - full time - sure. Then the next year or so can be spent realising all the little things you did wrong and getting better. But don't let that hold you back, you can certainly do something functional in that time and it's the best way to learn.
I would not start with a book but use iTunes University. The first course available from Stanford was called CS193P Web Page (iTunes link) and it's a great place to start - seeing things done on video is easier for me than reading. More recent classes are also available though they do not publish every semester's class.

Choosing the correct framework [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
When starting out on any project it could be seen as essential to pick an appropriate framework. I was wondering if you would point out any key questions that should be asked in order to aid the choice. I have looked at numerous sites and there doesn't seem to be any definative questions to ask before a choice is made.
I was wondering if, in any of your experience,s you have come across any key questions.
I gather one of the first is what are you developing? web app or desktop based
Any key questions would be a great help. This is a pretty general question as I am just looking for generic questions that would be asked before a choice is made.
Pick one you (or your team) already know.
Learning a new framework is a time consuming and expensive process that you don't want to be associated with a project. I would say the number one factor when selecting a framework/language is the existing knowledge base in your team.
[Obviously, this isn't very helpful if you don't currently know any, or the ones you do know aren't useful in the project's domain]
The best technology is the one you know. So ask a question - what technologies my team has experience in.
The main question you must ask is about stability. If you are developing an enterprise application wich sould be maintained for several years and should me stable, you should use mature and well tested frameworks. Something Java EE or .NET based for web applications. If your project is experimental, you can use experimental frameworks, technologies, languages etc.
Pick the one with good documentation. The quality of documentation gives you a clue how good the framework is.
A large user community is a plus, especially for opensource frameworks.
Ask yourself right from the start:
What are the things my application
will do, what are the ones it won't ever
do?
Choose a framework that makes it easy to accomplish the things you want from your application, care less for things that are extra. Don't worry, when you'll really need extra, you'll worry about looking then.
Who will use my application? What are
the numbers and needs of people that
will be the application's users?
You need a framework that scales well to the number of users you intend your app to handle and to their specific needs(collaboration, social interaction, ease of use, necessary tools, etc).
Is there a strong support
for the framework(from the developer or the community)?
Make sure you'll have who to turn to if you'll have questions or problems.
I usually try to find the framework that is the most popular. Have a look at a comparison of Javascript frameworks in Google Trends. It's pretty obvious that jQuery is the most popular by a large margin, so I'd lean towards using that.
It's not the only criteria, but more users means better documentation, testing, features, etc. Also, if you're new to an area of programming, then it usually pays to follow the wisdom of the crowd.
I would start by thinking about the pros and cons of frameworks in general. Based on those things that matter most in your situation, see which frameworks fit.
It's also helpful to think about the general features found in most frameworks of a platform (web application frameworks, for example). Decide which of those features are important to you, then investigate the frameworks that provide those features.

What is the best free open source CMS (content management system) solution? [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 13 years ago.
Improve this question
I want to convert a website to use a Content Management System for updating a large number of content pages for a website. The current website is mostly ASP.NET, but I am considering converting to PHP if it means I will have better integration with the "CMS of choice" in the market. I have heard of Joomla! and other CMS' but I would like some answers to which ones are considered better. Features that I need to support are custom sidebar and tab menus (with expandable javascript drop downs for example). Can anyone tell me of a good solution?
You should look at opensourcecms.com. It's a site that hosts demos for the majority of open source CMS's out there in both PHP and ASP.NET. You can try each one out and read the features and reviews. It's a good way to find one that meets your needs without actually installing them.
Joomla and Drupal are your most common and popular PHP based CMS solutions.
On the .NET side I would suggest only DotNetNuke. The amount of development that goes on in that CMS is second to none and there is a huge marketplace for content, modules, themes, etc. There is pretty much everything available in DNN to meet your potential needs.
The "best" CMS really, really depends on your requirements.
I will say that Joomla is pretty much typical PHP spaghetti, and I hate it, but it might work for you.
Kentico (a .NET CMS) is a pretty decent one that I've deployed a few times. Microsoft CMS is supposed to be decent, I haven't tried it though.
Without knowing specifically your requirements, I find it impossible to give a solid recommendation, though.
I didn't work with these applications yet, but AFAIK TYPO3 and ezPublish (both PHP) are considered much more professional than e.g. Joomla.
Drupal has a long history, proven track record of success (many high profile use cases, including the Obama campaign, Mozilla Firefox, and MTV in the UK), and a boatload of free modules and themes so you can start somewhere good. Drupal is also highly customizable in terms of how data is stored in terms of content types. Drupal has excellent consulting and contracting help.
Joomla is a strong second, but a quick look at Joomla criticism on wikipedia, and I think the choice gets much clearer. Two out of the three criticisms of Drupal on wikipedia are that it's too complicated, which is really a subjective matter as compared to the shortcomings of Joomla.
If web development is a hobby for you, then use an open source CMS such as those mentioned. If it is your profession, consider working towards writing your own that meets your needs. The first few will likely be a little rough, but in the long run it can prove very fulfilling and must more customizable than anything off the shelf.
Writing your own also forces you to consistently expand your skills and learn the intricacies of the programming language.

Advantages & Disadvantages of DotNetNuke? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
If you have worked with DotNetNuke, what are advantages and disadvantages that you have come across? What are alternative Content Management Systems that you have used that you find are better or worst. I'm trying to get a feel of what Content Management System Frameworks people are using and the advantages and disadvantages of them.
Thanks,
XaiSoft
This post may help as it has covered some of this info!
DotNetNuke works well, and has a wide variety of addins that are available for purchase from various vendors. It is also open source which is nice, as it allows you to troubleshoot issues to a deeper level then if it was closed source.
We didn't spend a lot of time researching CMS systems but this past summer we couldn't find anything with the functionality of DotNetNuke which targets the .net framework. If your not tied to .net then there are a ton of options available.
DNN is very very dynamic in terms of functionality, features and security. There's is nothing like it. However there are a few drawbacks that i felt while using it.
The biggest drawback in my opinion is the response time of a DNN using sites. The code itself is very obsolete and you need to lock yourself and scour on each and every coding details before using DNN. One more is the URL dependency, if you need to change your domain name to another your old database will be of no use.
There are a lot of new promising CMS extension in Dot NET market and Sageframe, in my opinion, is the best of them. I have been using this extension for quite a time now and I am quite fascinated by its features though still in beta.
DotNetNuke is quite powerful. It's biggest advantage is the inline editing of site content, in my opinion. It's biggest disadvantage is that it is pretty resource intensive compared to other CMS systems.
Here's a comparison I wrote last month:
http://www.logicalvue.com/blog/2009/01/cms-shootout-dotnetnuke-vs-joomla-vs-wordpress/
The biggest disadvantage is the missing support for multiple languages.
Yes, you can install multiple languages but you can't write seperate content for each installed language...
It's not hard to write such a module yourself but the other problem is the URLs.
You can use the 'Human Friendly' option but yet again, this does not support multiple languages.
For instance /Products/tabid/57/language/en-US/Default.aspx becomes products.aspx but there isn't a possibility to include the language like this /en-US/products.aspx
I know there are 3th party tools like UrlMaster which covers this up but still I think this should be available in such a framework.
The biggest advantage is the ease of developing your own modules! If a functionality isn't available, you can write your own module without any problems!
.Net Nuke is not good for developing projects.
Microsoft is releasing lot of versiond and including lot of lauguages.
So how developers will learn all the things...
This is very bad for developers.....