Angband.oook.cz
Angband.oook.cz
AboutVariantsLadderForumCompetitionComicScreenshotsFunniesLinks

Go Back   Angband Forums > Angband > Vanilla

Reply
 
Thread Tools Display Modes
Old January 19, 2008, 23:05   #1
strangeintp
Rookie
 
Join Date: Jan 2008
Posts: 13
strangeintp is on a distinguished road
Angband Java port

Hopefully I'm not stirring up a nest of nether worms or commiting some other dreadful faux pas, but I'm testing the waters to see what kind of interest there might be in the Angband community for developing a Java port of Angband. I'd been wanting to develop a 2D tile based version of Moria for a while, and even started a Sourceforge project about a week ago (Jmoria - there's nothing in it right now), but then I discovered Angband, and I love the gameplay features added on to the classical Moria.

So now I've set my sights on porting the 2D tile based Angband version to Java, with all the attendant benefits (cross platform, expandibility, maintainability, etc.) I know, a lot of time and code has already been invested in the existing version, but would any developers like to join me in seeing it happen?

I don't have any interest (at the moment) in making a signifiant variant, just porting the latest version to Java. Eventually I'd like to add network play for small groups of players, but that would be after getting the single-player version out.

If you're interested, let me know (either here or in the sourceforge jmoria forum)
strangeintp is offline   Reply With Quote
Old January 19, 2008, 23:22   #2
pav
Administrator
 
pav's Avatar
 
Join Date: Apr 2007
Location: Prague, Czech republic
Age: 39
Posts: 783
pav is on a distinguished road
Send a message via ICQ to pav
What would be the target platform? PC? Phones? Consoles?
__________________
See the elves and everything! http://angband.oook.cz
pav is offline   Reply With Quote
Old January 19, 2008, 23:37   #3
strangeintp
Rookie
 
Join Date: Jan 2008
Posts: 13
strangeintp is on a distinguished road
good question. I was thinking PC's, but now that you mention it, anything that runs a JRE could be a target platform. I'm not sure I'd want to try playing on a PDA, but I suppose if one needed one's Angband fix on the go, that could be a possibility!
strangeintp is offline   Reply With Quote
Old January 20, 2008, 02:39   #4
takkaria
Veteran
 
takkaria's Avatar
 
Join Date: Apr 2007
Posts: 1,946
Donated: $40
takkaria is on a distinguished road
Quote:
Originally Posted by strangeintp View Post
So now I've set my sights on porting the 2D tile based Angband version to Java, with all the attendant benefits (cross platform, expandibility, maintainability, etc.) I know, a lot of time and code has already been invested in the existing version, but would any developers like to join me in seeing it happen?
Cross-platform, expandability and maintainability are all things we currently have. I'm naturally resistant to the idea of a Java version, just because I can't get any bloody Java apps working on my linux machine at the moment, but many people have suggested this, started, and ultimately failed. I wish you good luck if you want to try and rewrite the game, but I'm not sure it's worth it.
takkaria is offline   Reply With Quote
Old January 20, 2008, 03:04   #5
Nick
Vanilla maintainer
 
Nick's Avatar
 
Join Date: Apr 2007
Location: Canberra, Australia
Age: 54
Posts: 7,965
Donated: $60
Nick will become famous soon enough
Quote:
Originally Posted by takkaria View Post
Cross-platform, expandability and maintainability are all things we currently have. I'm naturally resistant to the idea of a Java version, just because I can't get any bloody Java apps working on my linux machine at the moment, but many people have suggested this, started, and ultimately failed. I wish you good luck if you want to try and rewrite the game, but I'm not sure it's worth it.
Agreed; I don't really think it's the best use of effort. What would be nice is a front end for the existing game that runs as a Java app or in a web browser or some such. Sounds easy when you say it quickly.
__________________
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 January 20, 2008, 03:19   #6
zaimoni
Knight
 
zaimoni's Avatar
 
Join Date: Apr 2007
Posts: 590
zaimoni is on a distinguished road
Quote:
Originally Posted by Nick View Post
What would be nice is a front end for the existing game that runs as a Java app or in a web browser or some such.
Looking at nethack.alt.org, it appears the easy way would be a telnet front end which has a Java applet coming in.
zaimoni is offline   Reply With Quote
Old January 20, 2008, 03:56   #7
Zero
Apprentice
 
Join Date: Jan 2008
Posts: 83
Zero is on a distinguished road
I wholeheartedly support the porting of Angband to Java. In fact, I've had the same idea for the last week or two, since I've started playing Angband again.

I am a professional Java programmer, but inexperienced and I've been thinking that a project like this would be good for my resume and would sharpen my skills.

I understand the resistance to Java by other developers. My own opinion of Java was poor back when I was purely C/C++, but since learning the language I have come to appreciate how it simplifies a lot of what can make C and C++ programming frustrating. It is just a nice language to work with, and the performance of the JVM has improved greatly since Java's early days.

If I was going to do a Java Angband though, I'd change certain things. For one, I'd move as much to the edit files as possible, even things like resistances, monster types, and spells. The edit files themselves could also be converted to XML format, to simplify the code needed for edit file read/writing. I'd also change the UI so it is better suited for modern screens. Basically, there are a lot of things about Angband that could be made modifiable without recompilation, that currently require source code changes. Let me say, however, that Angband is hands-down one of the BEST designed pieces of software I have ever seen. I really have to congratulate Ben Harrison and Robert Ruehlmann for their amazingly well polished code, and I am sure that Andrew has and is continuing their quality work.

This would be a long project, and I'm not sure if I can commit to the kind of time that would be required for it. But since you're asking to see if there's interest, yes, there's definitely interest.
Zero is offline   Reply With Quote
Old January 20, 2008, 05:54   #8
strangeintp
Rookie
 
Join Date: Jan 2008
Posts: 13
strangeintp is on a distinguished road
Quote:
Originally Posted by Zero View Post
I wholeheartedly support the porting of Angband to Java. In fact, I've had the same idea for the last week or two, since I've started playing Angband again.

I am a professional Java programmer, but inexperienced and I've been thinking that a project like this would be good for my resume and would sharpen my skills.

I understand the resistance to Java by other developers. My own opinion of Java was poor back when I was purely C/C++, but since learning the language I have come to appreciate how it simplifies a lot of what can make C and C++ programming frustrating. It is just a nice language to work with, and the performance of the JVM has improved greatly since Java's early days.

If I was going to do a Java Angband though, I'd change certain things. For one, I'd move as much to the edit files as possible, even things like resistances, monster types, and spells. The edit files themselves could also be converted to XML format, to simplify the code needed for edit file read/writing. I'd also change the UI so it is better suited for modern screens. Basically, there are a lot of things about Angband that could be made modifiable without recompilation, that currently require source code changes. Let me say, however, that Angband is hands-down one of the BEST designed pieces of software I have ever seen. I really have to congratulate Ben Harrison and Robert Ruehlmann for their amazingly well polished code, and I am sure that Andrew has and is continuing their quality work.

This would be a long project, and I'm not sure if I can commit to the kind of time that would be required for it. But since you're asking to see if there's interest, yes, there's definitely interest.
Zero, it sounds like we think along similar lines. The project is actually something of a resume/experience builder for myself as well, in addition to the fact that I've always wanted to get into game programming.

Changing the edit files to a more human-readable code is something I had in mind, and parsing in Java is relatively painless (in fact, writing an auto-converter would not be difficult). When I mentioned not changing much, I was really referring to game play features - I'm not really setting out to make an Angband variant per se.

To address comment by previous poster - By no means did I intend to malign the existing code base; after looking through it, I can certainly appreciate the effort that has gone into (and it's especially nice to see the C code well documented - I intend to use that code extensively as a reference). But having moved from C to C++ to Java myself, I'm a big proponent of the language. Just as an e.g. - I haven't been able to get the graphical version running on my Linux box; that wouldn't be an issue with Java.

Additionally, I'll be doing a fair bit of the coding on a Linux platform anyways, so there should be a pretty good chance that incompatibilities are minimized (though I have yet to encounter any issues myself).

I did notice that at least one Java port has been attempted (see JAngband) and petered out. I think part of the problem is that the developer tried to tackle too much at once (in addition to real life butting in, I'm sure). I think the project can be broken down into reasonable bite size pieces and incrementally chipped away it. For version 0.0.1, for example, I have in mind a canvas displaying a single room (with graphics from the Gervais tile set), in which the player moves around.

In any case, I'm starting the project, and will try to get a foundation code base - or at least s/w spec - posted into the sourceforge project in the near future (one to two weeks). I welcome any assistance anyone wants to provide. And of course, it will be GPLed.
strangeintp is offline   Reply With Quote
Old January 20, 2008, 06:41   #9
takkaria
Veteran
 
takkaria's Avatar
 
Join Date: Apr 2007
Posts: 1,946
Donated: $40
takkaria is on a distinguished road
Quote:
Originally Posted by strangeintp View Post
I haven't been able to get the graphical version running on my Linux box; that wouldn't be an issue with Java.
No, the problem would be getting it working at all.

Quote:
In any case, I'm starting the project, and will try to get a foundation code base - or at least s/w spec - posted into the sourceforge project in the near future (one to two weeks). I welcome any assistance anyone wants to provide. And of course, it will be GPLed.
I would note that it pretty much has to be GPL'd if you're using the current code as a reference, in the same way that Angband retained the original Moria licence having being ported from VMS Pascal.
takkaria is offline   Reply With Quote
Old January 20, 2008, 06:59   #10
takkaria
Veteran
 
takkaria's Avatar
 
Join Date: Apr 2007
Posts: 1,946
Donated: $40
takkaria is on a distinguished road
Quote:
Originally Posted by Zero View Post
I understand the resistance to Java by other developers. My own opinion of Java was poor back when I was purely C/C++, but since learning the language I have come to appreciate how it simplifies a lot of what can make C and C++ programming frustrating. It is just a nice language to work with, and the performance of the JVM has improved greatly since Java's early days.
My opinion of Java is completely unrelated to whether I think it's a good idea to port the game to it -- I don't think it's a good idea to port Angband to python, or Lua, either, and I really really like Lua. It's just that it seems you gain no real advantage in doing so. If you're not changing the gameplay at all, then no-one will be particularly interested in playing it over the C version, and if you do change the gameplay, you might as well write a roguelike from scratch, simply because that would be a much better learning experience.

(I might seem to contradict myself at a later date if I claim that I want to put large chunks of my Angband variant into Lua and try and keep the amount of new C code to a minimum, but that's different-- that's replacing chunks of the game at a time with better code as necessary to achieve my ends.)

Quote:
If I was going to do a Java Angband though, I'd change certain things. For one, I'd move as much to the edit files as possible, even things like resistances, monster types, and spells.
Quote:
The edit files themselves could also be converted to XML format, to simplify the code needed for edit file read/writing.
Some years ago my brother Antony wrote a slimline XML parser for Angband, and we experimented with putting the edit files in XML. The problem then became not not knowing what all the values meant, but rather being able to fit more than one entry on the screen at any given time. Leading me to believe that one would seriously need a dedicated editor to edit such XML files. At that point, I gave up on the idea... given the choice between editing a compact format with a text editor, being able to use sed and grep and all the other unix tools that I do, or using an editor I have to write myself and keep up-to-date that doesn't allow me to use grep &c., I'll take the compact text format anyday.

There are plans afoot to change the format during the 3.1.x release cycle to something ever-so-slightly more verbose but still proprietary... but I'm still not sure if it's worth it.

Quote:
I'd also change the UI so it is better suited for modern screens,
That's one of my goals with the main Angband branch, though nothing much is happening in that area for a while.

Quote:
Basically, there are a lot of things about Angband that could be made modifiable without recompilation, that currently require source code changes.
You might want to take a look at what Andrew Doull's done in UnAngband wrt spell effects, and putting those into edit files. Though the implementation is in C, the ideas are still well worth looking at.
takkaria 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 10:30.


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