[Archived] I want to help

I’ve uploaded missing files, sorry for trouble.

Thanks, both of you it’s almost working now! I managed to compile all 4 projects (revision 1822), and link each except for the client. As far as I can tell, it misses the files of CMapHandler.
I managed to start the server, so I think it’s the only thing left before I can ask: “How can I help?”

Edit:
I managed to find it, it’s just called maphandler.cpp, the client is built succesfully.

Edit2:
The client is working, I managed to run 2 instances and start up a MP lobby :slight_smile:

So, how can I help?

Just have a look
wiki.vcmi.eu/index.php?title=TODO_list

However, it’s not a good moment to add new functionalities as old code is hardly working and needs fixes, though no one has time for that.

@Ozsy

You can always take an older, stable revision and improve our AI. The interface does not change significantly over time so merging with trunk when it’s more stable will be easy.

I don’t recommend bugfixing for beginners as it’s hard, not satisfying and time-consuming.

One more question: How much work should be done before updating the repository? I made some changes in BattleHelper (and a bit in BattleLogic).

Actually we don’t have precise guidelines but:

  1. the code in repository should always compile, especially trunk
  2. don’t commit more than 2 times a day if you don’t think it really necessary
  3. it’s good when you don’t break features that already worked, especially just before releases (but it’s not obligatory in some cases)
  4. don’t commit unnecessary files (like Warmonger did in rev 1822); if you accidentally do, remove them once you see what happened
  5. enjoy coding!

Next question: how can I get access to upload my files?

You’d need to create an account at sourceforge. But to start with you can post your changes in patch/diff format here (or send them directly to me) and I’ll upload them. :slight_smile:

Little question. As I’m currently peeking at code in various locations and I found many commented out lines, are patches cleaning up those and improving readability accepted? I think it would help other people that will join project. Well, I can improve documentation, too.

Most commented-out parts indicate that some part of code was rewritted / improved. It’s not necessary to remove them as long as they may be helpful if new code is wrong. These are usually removed by devs after few months, if they are sure this code won’t be needed anymore.

I’m not sure if code clearing will help anyone join the project (it looks clear enough now IMO), but documentation certainly can. We have entire Wiki to be filled with technical details. Also, player’s manual, entires and especially general info about the project are areas for improvement.

Warmonger, but if the new code is wrong you can always use version control system to “travel back in time” :slight_smile:

Comment just above or just below is much easier to notice and to handle. SVN is really poor at browsing the history of changes of a function. If I had super-fast blame tool integrated with IDE with a sider for selecting last revision to take into account, then version control would be better than those comments indeed.

github.com/kot-behemoth/VCMI/bl … rities.cpp

Do you really still think that git or other distributed systems are worse? :wink:

Well, if someone wants to check if sticking with “bullet-proof” SVN is better:

Mercurial intro: hgbook.red-bean.com/
Git intro: book.git-scm.com/

I personally use mercurial + HgSubversion extension for working with SVN repositories. I recommend trying that in spare time. Docs: mercurial.selenic.com/wiki/HgSubversion

About amount of dead code that can be removed: bitbucket.org/exine/vcmi-patche … code.patch

No, I think they are better than centralized systems in principle. I’d really like to have a well-implemented distributed version system. Let me just write my recent experience with bazaar. I’ve cloned VCMI repository (without any problems) and ran blame tool on one of files (to be precise, not the command line tool but a graphical interface for it). It worked almost perfectly, was very fast and did everything that I wanted (including selection of last revision to be shown). There was just one small glitch: after selecting last revision some revision numbers were truncated to last three digits.

I don’t write it as a complain nor bug report. I just want to point that DVCSes seem to be quite stable now but they still have some minor problems. Bazaar seems to be the best for my taste (non-hash revision numbering, good tools for Windows) and I can use it even without any changes in our main repository. It seems to be worth a try (I just need more time for VCMI).

VCS in command line? Most Windows users are too afraid to use command line for tasks it suits better but some Linux users seem to go too far in the opposite direction.

I think that comments are not worth removing. What bad could happen if it stays there? And they may be helpful for those who don’t browse the history of changes all the time.

TortoiseHg - mercurial in TortoiseSVN GUI
Actually CLI is awesome for developement - I like it better than any IDE. However I like netbeans and eclipse when it comes to Java developement.

Of course nothing happens, they’re comments, but after few generations of those they just make things harder to read :wink:

About bazaar - I don’t consider it as mature. On other hand, mercurial is used at Mozilla (moved from CVS), by python developers (moved from SVN), OpenJDK, Atlassian (large project management software developer, moved from SVN), Google and many, many more. Git is used by Linux Kernel developers, Android, Ruby on Rails, KDE, Gnome, Debian, and many, many more too. I personally prefer mercurial with it’s ease to use for beginners and being powerful for advanced users, not to mention fantastic extension system (look at Mercurial Queues and HgSubversion), however both git and mercurial are fast, powerful and used in large scale projects.

Hey all-

Another C++ programmer and avid HoMM3 fan here looking to help out. I was thinking of looking into AI, since that’s a subject of interest to me at the moment (and I’ll be taking a course in it shortly). Is that something that still needs work? I don’t see any adventure AI code (in trunk, at least), though at least the stupid battle AI looks reasonably easy to read.

Anyway, I guess I’m looking for pointers/suggestions to get started.

Thanks much!

EDIT: I should probably mention that I’m not ENTIRELY clueless when it comes to AI, since I’ve done a little (very simple) work with it.

It might also be worth noting that I more or less know what I’m doing with SDL and SVN, and am already on SF (as “capn_fish”; I probably should have thought of that before registering here).

Hi.
Currently we have 2 AIs - outdated GeniusAI and better StupidAI. Also there is work-in-progress adventure map AI (Tow is working on it).
There may be some areas that are still missing in battle AI like spellcasting but it will be better to contact Tow at first - he should know more about that.

To get started you can also check for some bugs on our tracker or implement some missing features. There is TODO list on our wiki that you can check but it became quite small lately.

Tow & Tow Dragon have quite ambitious plans about AI, including their programming Challenge project. I strongly recommend contacting them first before taking any others steps.

Hello, as I wrote in the Mac OS X thread I am an objective c / java programmer and a heroes 3 fan.

I saw your project and I instantly thought it has a lot of potential and I would love to help. I don’t have experience in writing C++ code but I read a few books and I am sure I will bring some value to this project.

I created sourceforge and mantis accounts both with the same username: cipone23. If someone could assign me some small tasks at the beginning and guide me through the process of submitting the code I could get started right away.

Thanks

Hi,
I’m of course H3 fan and I’d like to help in other way than others.
I’m a musician.

I can make with friends a soundtrack [something climatic :smiley: ]

Can it be also rock/metal or rather not ?
Just describe what do you exactly want

Waiting for quick response ; )