PDA

View Full Version : Help start development


Kurogane
October 6, 2010, 17:33
Hey guys,

I'm clearly a new member here (horray for 1st post), and me and a few of my classmates in University are working on Angband as a semester project. We're all starting to get Angband to compile correctly, but we're wondering what's the best method to help out with developing Angband? We've joined the IRC Chats and checked out the WIKI and the update goal list, what's the best 1st step?

Derakon
October 6, 2010, 18:05
Hey, awesome! Sounds like a good project to me. :)

Angband development isn't terribly focused at the moment, though. I'd recommend getting into contact with one of the devs who has commit access and asking what items they have on their to-do lists. Alternately, this page (http://rephial.org/wiki/Plans) (and this subpage (http://rephial.org/wiki/Plans/3.1)) have some good things to look into.

One thing that could be interesting to try which was mentioned recently is adding more special room types. Special rooms are the rooms that aren't just open rectangles, but aren't as complicated as vaults. They encompass pillared rooms, moated rooms (with various interiors, e.g. checkerboard, single internal room, double internal room), cross-shaped rooms, etc. Adding more special rooms would vary dungeon generation nicely without having an impact on game balance.

camlost
October 6, 2010, 18:07
Hey guys,

I'm clearly a new member here (horray for 1st post), and me and a few of my classmates in University are working on Angband as a semester project. We're all starting to get Angband to compile correctly, but we're wondering what's the best method to help out with developing Angband? We've joined the IRC Chats and checked out the WIKI and the update goal list, what's the best 1st step?

What is it you're trying to accomplish? Are you planning on forking and working on a variant? Do you want to fix bugs? Do you want to get a feel for working on an OSS project?

If you haven't yet, you should probably get the working development version from Github and get it to compile.

http://github.com/takkaria/angband

Kurogane
October 6, 2010, 18:26
What is it you're trying to accomplish? Are you planning on forking and working on a variant? Do you want to fix bugs? Do you want to get a feel for working on an OSS project?

If you haven't yet, you should probably get the working development version from Github and get it to compile.

http://github.com/takkaria/angband

We plan on starting this out by working on bugs while getting a feel of how the program works, meanwhile it'll help us, like you said, get a feel for helping develop an OSS.

Once we start to feel more comfortable and get a better understanding of Angband, we'd love to help the goal list for the next update. But to be honest I don't think we can contribute that much right off the bat, fixing bugs seems like a slightly easier task to hit first off.

fizzix
October 6, 2010, 19:28
I'm not sure there's been much progress on the project of changing weapon and monster memory so that it's easier to find the info you want. Some posts describing it are on this page (8) of this thread:

http://angband.oook.cz/forum/showthread.php?t=3574&page=8

I think this would be a pretty good project, will not affect gameplay, and is sorely needed.

Magnate
October 6, 2010, 20:47
Alternatively you can try this page: http://trac.rephial.org/query?status=assigned&status=confirmed&status=new&status=reopened&group=owner&max=1000&order=milestone&col=id&col=summary&col=milestone&col=keywords&col=time&col=changetime&owner= - this is a considerably more detailed list of bugs, feature requests and desired coding changes, and it's way more current than the rephial pages. There are currently 288 of them without owners (and about 75 more with owners). Please feel free to pick any one of these and fix or implement it in your git branch - post a link to that on #angband-dev and someone will test it and merge it back into main if it works.

PowerDiver
October 6, 2010, 21:44
If you really want to be helpful, figure out the visibility code and fix it or rewrite it.

Currently things do not work, e.g.

#@##
#.#.
.#.#
#.#x


The @ can target the x if it is shown via a detection spell, without any trick shots, but it does not show up as visible even on a lit square.

This is more of a project than just finding and fixing a random bug, but it might be suitable if you want something substantial but not too big.

Timo Pietilš
October 7, 2010, 02:42
If you really want to be helpful, figure out the visibility code and fix it or rewrite it.

Currently things do not work, e.g.

#@##
#.#.
.#.#
#.#x


The @ can target the x if it is shown via a detection spell, without any trick shots, but it does not show up as visible even on a lit square.

This is more of a project than just finding and fixing a random bug, but it might be suitable if you want something substantial but not too big.

What Eddie is saying here is that it is the targetting that needs fixing, not the visibility. Make it impossible to target if it is not visible preventing the "hockey stick" -method of killing things. Asymmetric targetting should still stay IE:


#####
#..@.
#x###


@ can shoot x but x can't shoot @ (because it can't see @, which makes sense).

PowerDiver
October 7, 2010, 03:53
What Eddie is saying here is that it is the targetting that needs fixing, not the visibility. Make it impossible to target if it is not visible preventing the "hockey stick" -method of killing things. Asymmetric targetting should still stay IE:


#####
#..@.
#x###


@ can shoot x but x can't shoot @ (because it can't see @, which makes sense).

My example is the same as yours, just 1 longer. IMO either both are hockeysticks or neither. However, this is not the gist of what I think they should work on. I don't think a new participant should be worrying about asymmetric stuff people have been arguing over for ages. Deciding the rules for what is targetable should be solely in Takkaria's control. I'm talking about addressing the game as it is now.

In any case, I believe that what is targetable definitely ought to be a subset of what is in LOS. I can't imagine anyone arguing otherwise except for the sake of tweaking me.

There is work going on about making a more accurate distance function, and somehow that screws up visibility. Providing a well-built scheme for visibility that can accomodate whatever targeting and visibility rules may be decided in the future is a laudable goal in itself, even if it doesn't result in any changes noticeable by the player.

Kurogane
October 12, 2010, 01:49
Right, I defiantly will be looking at the bug list and fixing things here and there.

As for contacting a developer with commit access, anyone in particular I should contact? I have no idea who would have it - it sounds like Takkaria might be someone?

takkaria
October 12, 2010, 08:58
Right, I defiantly will be looking at the bug list and fixing things here and there.

As for contacting a developer with commit access, anyone in particular I should contact? I have no idea who would have it - it sounds like Takkaria might be someone?

With Git there's no need to give you commit access-- you should make your own git fork on github, make your changes on it, and I'll pull them upstream after testing.

Timo Pietilš
October 12, 2010, 09:56
Right, I defiantly will be looking at the bug list and fixing things here and there.

As for contacting a developer with commit access, anyone in particular I should contact? I have no idea who would have it - it sounds like Takkaria might be someone?

Takkaria is the maintainer. Others are just tiny helpers that obey what he says. While there are several developers with many ideas, it is he who ultimately decides which one would be "official" change.

Magnate
October 12, 2010, 21:43
With Git there's no need to give you commit access-- you should make your own git fork on github, make your changes on it, and I'll pull them upstream after testing.Apologies for the confusion, I was still thinking in the old svn paradigm. By "contact a developer with commit access" I meant "send a pull request to takkaria, d_m or me".

Kurogane
October 13, 2010, 17:27
Oh alright. Thanks a lot for the help guys, I appreciate it.

Derakon
October 13, 2010, 18:27
No, thank you! :)

Kurogane
October 13, 2010, 18:37
One last thing, I know that the tickets are assigned to a developer (http://trac.rephial.org/report/4), is there any way that I can assign a ticket to myself, or do I have to message someone? If you couldn't tell I'm new to Trac as well.

Edit:

Hold on, I just figured out that Trac is a legit program, I'm going to figure this out myself :)

Edit Edit:

Yeah I couldn't figure it out haha, I'm pretty sure I just downloaded stuff that would create a Trac server or something to that effect

Magnate
October 15, 2010, 21:50
One last thing, I know that the tickets are assigned to a developer (http://trac.rephial.org/report/4), is there any way that I can assign a ticket to myself, or do I have to message someone? If you couldn't tell I'm new to Trac as well.Once you have a login on trac, you can assign tickets to yourself. (If they are unowned, nobody will mind; if they are already assigned to someone else, it's polite to discuss the ticket with the owner before reassigning it!)

To get a login you need to contact takkaria - I don't know anyone else who can create one for you. You could try a PM on this forum.

Pete Mack
October 28, 2010, 08:03
I think you're making a mistake here. Just now, Angband is mostly in maintenance mode--fixing bugs, minor feature additions. While it's a real mizvah to work on such things, it's not really suitable for a class project.

If you want to make a significant contribution as a team, you should volunteer for something less mature or a significant new feature.
In the Angband world, that means:

* Unified GFX model (eg Isoband) (feature)
* Object-oriented rewrite (eg pyAngband, angbandLib) (immature project)
* 4GAI (feature)

Fixing bugs is not a worthwhile class project.

Edit:
There is one other new feature in angband that might make a worthwile class project.
Angband currently only runs on a very small number of handhelds devices, and not very well at that. If you can make a genuine keyboard-free port (e.g. for generic large-screen smartphones) with a particular implementation (Android, iPhone, or WinPhone7), you'll have a real contribution with educational value.

UX skills are highly marketable in industry. (After all, UX is Apple's main selling point.)


Edit 2:
If you want a real challenge, come up with a model that allows multi-player angband that scales with the number of users involved.
That is,
* With one user in detection range, it plays like ordinary angband
* With many users in LOS, it plays like something completely different.
* Turns are based on disturbance, not on artificially imposed real time