Angband.oook.cz
Angband.oook.cz
AboutVariantsLadderForumCompetitionComicScreenshotsFunniesLinks

Go Back   Angband Forums > Angband > Vanilla

Reply
 
Thread Tools Display Modes
Old May 28, 2014, 19:54   #1
Netcracker
Rookie
 
Join Date: May 2014
Posts: 9
Netcracker is on a distinguished road
Java port continued

I'm wondering if there's an active Java port development of Angband out there.

I read this post and did not want to dig it out again because it is from 2008.

I searched the web and found the following two projects which seem to be dead. Maybe someone knows about active or planned Java ports of Angband?

1. Jangband. Last update: one year ago. http://sourceforge.net/projects/jangband/
2. Javamangband. Last update: more than two years ago. http://sourceforge.net/projects/javamangband/
Netcracker is offline   Reply With Quote
Old May 29, 2014, 00:43   #2
Derakon
Prophet
 
Derakon's Avatar
 
Join Date: Dec 2009
Posts: 8,918
Derakon is on a distinguished road
Not so far as I'm aware. Rewrites of Angband in other languages are very difficult and time-consuming projects, and I should know.

(Pyrel isn't dead, I'm just on indefinite hiatus...)
Derakon is offline   Reply With Quote
Old May 29, 2014, 14:14   #3
Netcracker
Rookie
 
Join Date: May 2014
Posts: 9
Netcracker is on a distinguished road
I was speaking of Java ports, not Python ports because I'm a Java developer. I'm tempted to start a Java(FX) port but the point is I do know what it would mean - endless sleepless nights, debugging, frustration, refactorings, hiatus as you wrote. I started a similar project in the past and although the community was really large there was no one who helped me coding so I ended up doing it all alone. As always it took much more time and so I stopped working on it. My days aren't 48 hrs and some now and then my wife would like to see me too and the kids want to play with daddy.

I read your post about an object model. Very interesting! I agree that it would definitely make sense to spend a lot of time on a model and basic concepts of handling events. Reading the discussion it came to my mind that the game is all about events or messaging, Things that want to get informed about events. Kind of a message service where objects can register to topics they are interested in and receive a message if something's happening. A similar approach would be to use the Observer design pattern to handle state changes.

I haven't had a look at the code of Angband yet. Sure this would be a good starting point to find out leaving the Java port to someone else would be a good idea.
Netcracker is offline   Reply With Quote
Old May 29, 2014, 15:55   #4
Derakon
Prophet
 
Derakon's Avatar
 
Join Date: Dec 2009
Posts: 8,918
Derakon is on a distinguished road
One of the first things I wrote for Pyrel after I got the basic object model working was a publish/subscribe module. This is trivial in Python, where you can just say "Hey, I want to subscribe to the event named "foo", call this function when it happens". It's a pain in the ass in Java, where you can't just pass functions around so easily. Generally for Java instead you have classes implement listener interfaces and then have a central class for each corresponding interface that performs calls when the event occurs. Or, preferably, you grab something like the Guava library's EventBus and use it instead. Still not quite as simple as the Pythonic approach but a hell of a lot better than vanilla Java.
Derakon is offline   Reply With Quote
Old May 29, 2014, 19:06   #5
AnonymousHero
Veteran
 
AnonymousHero's Avatar
 
Join Date: Jun 2007
Posts: 1,367
AnonymousHero is on a distinguished road
Quote:
Originally Posted by Derakon View Post
One of the first things I wrote for Pyrel after I got the basic object model working was a publish/subscribe module. This is trivial in Python, where you can just say "Hey, I want to subscribe to the event named "foo", call this function when it happens". It's a pain in the ass in Java, where you can't just pass functions around so easily. Generally for Java instead you have classes implement listener interfaces and then have a central class for each corresponding interface that performs calls when the event occurs. Or, preferably, you grab something like the Guava library's EventBus and use it instead. Still not quite as simple as the Pythonic approach but a hell of a lot better than vanilla Java.
I get the sense that you're a Java developer "by day"... or at least have been . Things like Observable just got a lot less terrible with Lambda syntax (and SAM) in Java 8, but frankly I switched over to Scala about 10 (or so) months ago and have never looked back. (I look enviously toward Haskell, but I'm not sure the rest of the world is ready for it yet... I've been programming in it for years and years, but only personal projects so far.)

Scala is just a lot more concise, less ceremonious and has proper support for (G)ADTs. IME algebraic data types are a huge boon to productivity and safety.
AnonymousHero is offline   Reply With Quote
Old May 29, 2014, 19:44   #6
Netcracker
Rookie
 
Join Date: May 2014
Posts: 9
Netcracker is on a distinguished road
I didn't say that Java is the best programming language of the world. Every language has strengths and weaknesses. In fact there's no programming language which satisfies all the needs you have. Mind the horrible date and time API which has finally been improved in Java 8.

But I don't want to discuss about programming languages. I would like to know about Angband Java ports.
Netcracker is offline   Reply With Quote
Old May 29, 2014, 20:18   #7
AnonymousHero
Veteran
 
AnonymousHero's Avatar
 
Join Date: Jun 2007
Posts: 1,367
AnonymousHero is on a distinguished road
Quote:
Originally Posted by Netcracker View Post
I didn't say that Java is the best programming language of the world. Every language has strengths and weaknesses. In fact there's no programming language which satisfies all the needs you have. Mind the horrible date and time API which has finally been improved in Java 8.

But I don't want to discuss about programming languages. I would like to know about Angband Java ports.
In case it wasn't clear, I wasn't actually replying to you, nor particularly harshing on Java -- more extolling the virtues of Scala -- but...

There are no $OTHER_LANGUAGE ports at this time. There are many reasons for this, but the overriding ones from my experience are: 1) No (non-developer) players care what language it's written in, as long as C/Vanilla works well enough, 2) why would anyone switch if it's more hassle to get it running? (Angband is already packaged for multiple Linux distributons and has Windows builds.), 3) The temptation to change "just this little thing" overpowers most would-be C-to-$LANG conversion projects until it's no longer "vanilla", 4) ... need I go on?

EDIT: Executive summary: It's not technical factor, it's human factors and network effects. Like most everything in the IT industry these days.
AnonymousHero is offline   Reply With Quote
Old May 29, 2014, 21:15   #8
Netcracker
Rookie
 
Join Date: May 2014
Posts: 9
Netcracker is on a distinguished road
Well, you are right. My question has been answered. No port - no future. My hope is lost. So long live C!
Netcracker is offline   Reply With Quote
Old May 29, 2014, 22:15   #9
mrrstark
Adept
 
Join Date: Aug 2013
Posts: 101
mrrstark is on a distinguished road
Take a look at the angdroid ports of Angband and variants to Android.

If you want to play with Java and Angband, maybe that's a place where you can make some improvements, especially in crafting better interfaces, and simplifying the tablet/phone integration effort.
mrrstark is offline   Reply With Quote
Old May 30, 2014, 01:51   #10
takkaria
Veteran
 
takkaria's Avatar
 
Join Date: Apr 2007
Posts: 1,936
Donated: $40
takkaria is on a distinguished road
Abandon all hope, ye who enter here!
__________________
takkaria whispers something about options. -more-
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

Similar Threads
Thread Thread Starter Forum Replies Last Post
Web Port wilbur07 Vanilla 6 February 27, 2014 14:39
Angband Java port strangeintp Vanilla 24 September 16, 2012 05:48
OpenGL port BreathesFire Development 2 November 3, 2011 08:22
Need some help with designing a Java-based Angband variant Therem Harth Development 7 October 9, 2011 03:43
[V] Gtk port Magnate Development 1 February 24, 2009 10:48


All times are GMT +1. The time now is 01:04.


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