Angband.oook.cz
Angband.oook.cz
AboutVariantsLadderForumCompetitionComicScreenshotsFunniesLinks

Go Back   Angband Forums > Angband > Development

Reply
 
Thread Tools Display Modes
Old August 25, 2010, 22:27   #11
Magnate
Angband Devteam member
 
Join Date: May 2007
Location: London, UK
Posts: 5,057
Magnate is on a distinguished road
Send a message via MSN to Magnate Send a message via Yahoo to Magnate
Quote:
Originally Posted by Nick View Post
While we see if this is going to be a viable idea I thought it would be worth having a thread to dump everything into.

The idea in brief is to have the code for file-handling, display, UI etc separated out from the code for the game proper (where game can mean Vanilla or a variant). AngbandBase should contain all the code that there would be no reason for a variant maintainer not to want.

As I see it, the two big advantages are easier UI maintenance, and portability to more platforms for everyone; the main disadvantage is just getting it organised and keeping it organised.

There are some tricky issues at the boundaries of what to include and what to exclude (targeting, pathfinding and menus among them).

The AngbandBase repository is currently here. Anyone who wishes to contribute will be welcomed with open arms; they just need to make an account at github and let me know what it is, and I'll add them as a collaborator. I'm thinking of this repository as a community thing - it's under my name for convenience only.
Nick,

Just wondering how this was going. There was some discussion on IRC and I thought it might be worth asking here: how does one build V from this?

#1. Clone the angband-base git repo to get the core files.

#2. Checkout the latest V from svn (or download a tarball, or whatever).

#3 ...? Presumably the ideal would be that you copy the angband-base files over into your local V source tree and it Just Works when you type "make"...

Is there more to it than this? If this were to work, one could develop for V and check relevant changes back in to angband-base ...
Magnate is offline   Reply With Quote
Old August 26, 2010, 01:04   #12
Nick
Vanilla maintainer
 
Nick's Avatar
 
Join Date: Apr 2007
Location: Canberra, Australia
Age: 54
Posts: 7,655
Donated: $60
Nick is on a distinguished road
Quote:
Originally Posted by Magnate View Post
#1. Clone the angband-base git repo to get the core files.

#2. Checkout the latest V from svn (or download a tarball, or whatever).

#3 ...? Presumably the ideal would be that you copy the angband-base files over into your local V source tree and it Just Works when you type "make"...

Is there more to it than this? If this were to work, one could develop for V and check relevant changes back in to angband-base ...
Yes, this is pretty much how I was planning for it to work.

As for how it's going, currently not at all - RL has currently been absorbing all the time I usually put into *bands (and more). I'm hoping to get back into it all some time in the next couple of months, but that's a hope rather than a promise.

And while I'm here, apologies for the lack of competition at the moment. I'll try to get one up this weekend.
__________________
One for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.
Nick is offline   Reply With Quote
Old August 26, 2010, 07:32   #13
camlost
Sangband 1.x Maintainer
 
camlost's Avatar
 
Join Date: Apr 2007
Posts: 522
camlost is on a distinguished road
Quote:
There are some tricky issues at the boundaries of what to include and what to exclude (targeting, pathfinding and menus among them).
Handling boundary cases seems pretty simple. A few defines and a few lines of code at the beginning of each function that has potential to be non-standard can redirect the function elsewhere to be handled.

The defines can live in the variant directory.
__________________
a chunk of Bronze {These look tastier than they are. !E}
3 blank Parchments (Vellum) {No french novels please.}
camlost is offline   Reply With Quote
Old August 31, 2010, 18:47   #14
Magnate
Angband Devteam member
 
Join Date: May 2007
Location: London, UK
Posts: 5,057
Magnate is on a distinguished road
Send a message via MSN to Magnate Send a message via Yahoo to Magnate
Quote:
Originally Posted by Nick View Post
Yes, this is pretty much how I was planning for it to work.

As for how it's going, currently not at all - RL has currently been absorbing all the time I usually put into *bands (and more). I'm hoping to get back into it all some time in the next couple of months, but that's a hope rather than a promise.

And while I'm here, apologies for the lack of competition at the moment. I'll try to get one up this weekend.
No probs - I too have been AFK a lot recently. Hope all is well chez vous.
Magnate is offline   Reply With Quote
Old September 12, 2010, 21:14   #15
Magnate
Angband Devteam member
 
Join Date: May 2007
Location: London, UK
Posts: 5,057
Magnate is on a distinguished road
Send a message via MSN to Magnate Send a message via Yahoo to Magnate
Well, it looks like some significant changes are coming to the V codebase - see http://github.com/elly/angband if interested. The most significant is a code refactor which separates OBJ from MAINOBJ, which means that all the game code gets linked separately from all the UI code. To my amateur mind this seems like a crucial distinction for AngbandBase, so perhaps Nick will want to rebase AngbandBase from this one day. But when is an interesting question, as it has not yet percolated back into trunk - I would have been confident that it would do so before 3.1.3, but Takkaria has just resurfaced (see http://trac.rephial.org/ticket/1193), and when he does he usually makes a release quickly before he disappears again ... lots of excitement ...
Magnate is offline   Reply With Quote
Old September 13, 2010, 02:41   #16
Nick
Vanilla maintainer
 
Nick's Avatar
 
Join Date: Apr 2007
Location: Canberra, Australia
Age: 54
Posts: 7,655
Donated: $60
Nick is on a distinguished road
Quote:
Originally Posted by Magnate View Post
The most significant is a code refactor which separates OBJ from MAINOBJ, which means that all the game code gets linked separately from all the UI code. To my amateur mind this seems like a crucial distinction for AngbandBase, so perhaps Nick will want to rebase AngbandBase from this one day.
I should think so. I am hoping that about mid-October I might be starting to actually work on this stuff again - I am going to be away from home (UK, in fact) but hopefully not completely AFK for a couple of weeks soon.
__________________
One for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.
Nick is offline   Reply With Quote
Old October 17, 2010, 13:18   #17
Nick
Vanilla maintainer
 
Nick's Avatar
 
Join Date: Apr 2007
Location: Canberra, Australia
Age: 54
Posts: 7,655
Donated: $60
Nick is on a distinguished road
OK, I've spent some time in the last couple of days working out what needs to be done; here are some thoughts:
  • The main* files, the z-* files, the Makefiles (apart from Makefile.src), and the doc, gtk, nds, osx and win directories are no-brainers to go in;
  • Ditto for snd-sdl.c, game-event.*, ui.*, ui-menu.*, textui.h, h-basic.h, prefs.c, button.c, signals.c and ui-event.h, and probably util.c.
  • It would be nice to have game-cmd.* and cmd0.c in in some form, but they have lists of commands specific to V which would need to be included from elsewhere, or something - similarly for ui-birth.* and birth.c;
  • Tempting as it is, target.c, pathfind.c, death.c, and similar can't really go in.

I have kind of started afresh by forking current V from takkaria's github. This will mean (in theory) that I can stay in sync with V, while adding, amending and renaming stuff where necessary, and then just copy the relevant bits to the AngbandBase repo.

Once it is finished, the plan is to keep V and ABase aligned, so that any change to V will be made (by me, or preferably the relevant V developer...) to AngbandBase if necessary as well.

This only becomes really difficult when there's something like a complete re-write of pref file handling, but we can cross that bridge when we come to it.

Any comments on the above from people who know the relevant bits of code would be greatly appreciated.
__________________
One for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.
Nick is offline   Reply With Quote
Old October 24, 2010, 08:07   #18
Nick
Vanilla maintainer
 
Nick's Avatar
 
Join Date: Apr 2007
Location: Canberra, Australia
Age: 54
Posts: 7,655
Donated: $60
Nick is on a distinguished road
Update - I have a list of src files, categorised by how they relate to AngbandBase. I'm planning to do a guide for maintainers at some point, too.

The list can be found here.
__________________
One for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.

Last edited by Nick; October 24, 2010 at 09:44. Reason: tl; dr
Nick is offline   Reply With Quote
Old October 27, 2010, 20:47   #19
Magnate
Angband Devteam member
 
Join Date: May 2007
Location: London, UK
Posts: 5,057
Magnate is on a distinguished road
Send a message via MSN to Magnate Send a message via Yahoo to Magnate
Quote:
Originally Posted by Nick View Post
Update - I have a list of src files, categorised by how they relate to AngbandBase. I'm planning to do a guide for maintainers at some point, too.

The list can be found here.
Sadly I know very little about angband UI so I'm really a supporter more in principle than in practice. Will have a look at the article when I'm caught up on Oook (just got back from hols, with no fewer than 16 deaths in comp 93 ...!).

I do know a bit about project management though, and I'm trying to come up with a systematic way to advance the authoritative dev versions of V now that so much stuff is going on on github. Most of the discussion will probably take place on #angband-dev so pls do drop in if you can - I'd quite like to make sure that V's developments are helpful to AngbandBase where possible.
Magnate is offline   Reply With Quote
Old December 3, 2010, 12:48   #20
Nick
Vanilla maintainer
 
Nick's Avatar
 
Join Date: Apr 2007
Location: Canberra, Australia
Age: 54
Posts: 7,655
Donated: $60
Nick is on a distinguished road
Just in case anyone thought they understood what's going on with this, I've moved the goalposts again.

I now believe that the easiest way to host AngbandBase is to have it as a branch of Vanilla at github. It can be found here.

The major advantage of this is that it's very easy to keep it up to date (although a little effort is required when V filenames change). In fact, the other people who can push to the official git repository can now update it...
__________________
One for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.
Nick is offline   Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 03:42.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, vBulletin Solutions Inc.