[Island Forge] Single-dev MMORPG * Now Free-to-Play!

Update: Island Forge is now Free-to-Play with Membership and Upgrade options!

This update is prompted by community input and the success of my recent Kickstarter project. Thank you for your interest in Island Forge. As always, community input is most welcome!


Island Forge: A world of Player-Created Content. Create Islands with Stories for Others to Explore! Classic old-school RPG elements in a brand-new player-created world.

Island Forge is written entirely from scratch (by me) in Java. I’ve been a Java developer since the beginning, but this is my first fully-featured game. Expert advice from the JGO community is most appreciated.

Thanks for your interest in my game! Find Island Forge on Facebook - Twitter - YouTube


http://islandforge.com/content/screens/islandforge-thumb-a.jpg

http://islandforge.com/content/screens/islandforge-thumb-e.jpg

Screenshots?
(Not allowed to hit ‘gaming’ links at work)

Yet you’re browsing javagaming.org :persecutioncomplex:

On topic: Looks good. Can’t play though, I’m on my tab :slight_smile: How is performance, using only java2d?

Yeah, same for me. Actually the one missing google index seems to help at least with this. I can’t visit most game related sites from work, but never had a problem with javagaming.org :wink:

same here, “web sense” blocks all other gaming related forums and sites for me at work. I guess obscurity helps?!

Regarding Java2D performance, it’s OK with a moderately modern processor, if the rendering engine is designed well. I’ve spent a lot of time to make the rendering procedure efficient. It performs all non-painting operations off the AWT/Swing thread, while correctly coordinating with the AWT/Swing thread to paint the scene. Being meticulous about the clip region is very important. Overall, Java2D is a great library, but will not magically make everything fast - it takes a lot of work to get right (and my engine has more room to improve, if need be).

Regarding technical issues playing from behind a filtering Web proxy: Island Forge is not an in-browser (applet) game. You do need to register and log into the site to download IslandForge.exe (or IslandForge.jar). Then, you can take the exe wherever you’d like to run the game. (When a new version is released, you’ll need to download it from the site.) However, the exe/jar does need to download secondary resources from the site, which might fail behind a filtering proxy.

How you can help: Please report how Island Forge behaves behind such a proxy/filter. We want Island Forge to operate well within as many technical circumstances as possible.

Java2d performance has been adequate for years. I posted an example with hundreds of manually blended alpha sprites that only moderately degraded frame rate at least 5 years ago.

Can you direct me to such articles? I’m always interested to learn from those that have more experience than me.

I should add the caveat that this is my first full rendering engine implementation. My software development background lies is networking, concurrency, object oriented design and languages, and security/cryptography. There are many nuances to graphic processing for which I do not claim any expertise (yet).

To develop the animation rendering for Island Forge, I have found performance to degrade significantly without careful coding. I am trying to push rather high frame rates, and most of the time there is no issue. However, there are cases in which the CPU spikes to max when several creatures come charging from the darkness to attack. It is possible that it is not Java’s painting that is the issue, but profiling shows most of the effort spent in drawImage and paintIcon. Any suggestions welcome!

Im 16 and blocked out because of not being a us citizen, and secondly being only 16.
You, sir, just locked out 97% of your potential players.

Here’s the thread I referenced and wow was it hard to find:

I don’t know of any articles or other documents. This stuff is scattered all over this forum. The 4k games generally have the simplest, most straight forward possible rendering code. I recommend reviewing the source of some of those.

Because we’re a small operation, that is a legal necessity for our Terms of Service. (Other Internet services have similar restrictions.) Rather than hide such things in the legalese, we prefer to be open and up-front with our community of players.

We appreciate your feedback on this issue. I sincerely hope that someday we can accommodate a broader audience.

UPDATE: To clarify age limitations, you may not play if under 13 years of age. If you are 13-17 you may play, but you need an adult to create and be responsible for your account. Please see the ToS for full details. The reason for the US residency (not citizenship) requirement (see ToS) is that we are based in the US and cannot guarantee compliance with the laws of all countries.

Thanks for following up with this link. I’ve spent most of today researching various rendering articles here. Overall, I seem to be following best practices (and then some), but I’m digging deeper into a few potential performance boosts I haven’t tried before. Thanks for the references.

The sign-up was really arduous. I can understand that you need that kind of process for when people actually pay for an account and start playing but we’re fellow devs trying to do you a favour. Can you make a dummy account or something? I almost didn’t bother.

The “You must be a US Citizen” box is extremely unfriendly to an international audience. I’ve never seen that before on other games I’ve played. Could it be hidden in the EULA or something?

Web-start failed.

CouldNotLoadArgumentException[ Could not load file/URL specified: /Users/skiyooka/Library/Caches/Java/cache/6.0/24/519a7498-74ced2c3]
	at com.sun.javaws.Main.launchApp(Main.java:367)
	at com.sun.javaws.Main.continueInSecureThread(Main.java:283)
	at com.sun.javaws.Main$1.run(Main.java:116)
	at java.lang.Thread.run(Thread.java:680)

I ended up downloading the .jar and ran the jar as instructed:
java -Xmx1024 -jar IslandForge.jar

It downloads some content then it shuts down. I tried to restart it:
java -Xmx1024 -jar IslandForge.jar

but now that fails with a dialog: Terribly sorry, Island Forge failed to start…

Eventually get it running with: java -jar IslandForge.jar

I could not figure out how to start the game. Clicking on that sword isn’t obvious. I ended up creating a map too because I thought I needed to.

Finally figured out how to join the game but the painting is borked. I can see my avatar and move via right-clicking but nothing else paints and all I see is myself walking around on a mostly white screen with lots of graphical glitches.

MacBook Pro
java version “1.6.0_26”
Java™ SE Runtime Environment (build 1.6.0_26-b03-384-10M3425)
Java HotSpot™ 64-Bit Server VM (build 20.1-b02-384, mixed mode)

Thanks so much for following up with all this detail. Very sorry to hear about your troubles launching the game.

I was actually just noticing some odd behavior in the server log, which must have been your client struggling to run. We have not had anyone run into so many problems thus far, so I am going to do some investigation immediately and respond to your points above shortly…

The problems you experienced are due to OutOfMemoryErrors. This accounts for all the failure cases you mentioned. You managed to get into the world, but the graphics could not render because of memory. Starting the client with 1024m heap size fails immediately, because your computer must not have that much RAM. We’re recommending 2GB RAM, to account for a 1GB heap plus JVM overhead.

Can you tell me how much memory your MacBook has? (Thanks for reporting your OS and JVM versions by the way, that’s very useful. We haven’t had enough testing on MacOS yet.)

Unfortunately, the client did not respond well and tried to keep on processing. It actually tends to be rather robust to most failures. I will improve this failure case, so the client at least tells you what is wrong and dies gracefully.

Regarding Java Web Start … well, my thoughts from 2007 pretty much still hold up: http://www.potentialgames.com/blog/2007/11/27/java-web-start-antithesis-of-usability/

(I’m planning to ask for application deployment advice here at JGO.)

Regarding the registration, we’re a small operation, and we cannot guarantee compliance with the laws of all countries, which is why US residency is required (see ToS). Most games probably do limit you to a certain country’s laws, but they hide that in their EULA. We prefer to be open with our players. At this point in our development, we need users to agree to the ToS. Since registration is only a one-time event, we hope it isn’t too much trouble, but we appreciate your feedback. (I’ll be sure to have a look at the JGO Business-related forums.)

it actually seems to me that “most” of JGO are europeans

I have 8 GB. Should I try it with some other vm options?

With 8GB RAM you certainly shouldn’t be encountering any memory problems! The JNLP specifies a 1024m heap, which is the same as the -Xmx1024m command-line flag. That has been more than enough in my experience. Your JVM is the same version I’ve been testing with, so that’s not an issue. I’ll continue to think about this; if you come up with any other reason for the crashing, please let me know (I like to keep track of these failure situations to help future users).

(Great profile pic, by the way.)

I got put off by the ‘US only’ thing…

Thanks for the feedback. It has been my ambition to create an online game since I first typed on a keyboard. It is unfortunate that the modern legal landscape requires us to limit the potential audience, but that is the situation for our small operation. I sincerely hope potential players will understand where we’re coming from.