User Tools

Site Tools


iceclient:introduction

This is an old revision of the document!


Iceclient

WARNING: This is NOT a complete working client. If you just want to play the game, for now just use the official client, which you can get from here

So, call me bonkers, but it seems I may have accidentally started to write a new client for Planet Forever :)

For those that can't be bothered to read a wall of text and want to jump straight in and find out, click the links below.

Tools

Why

Well, I've always wanted to learn how to write a game. So, I bought myself a book (http://www.packtpub.com/jmonkeyengine-3-0-with-java-programming-beginners-guide/book) and set to work. At first, there was no intention to write an actual client for the game, it was just that Greth had uploaded some games assets for other reasons, and I figured it would be neat to try and mimic some of the game I am so obsessed with :) It kind of snowballed from there!

Why Java

Well, mainly because thats what I do, and I know the language well. But, there are ton of other reasons.

  • Learning C++ would take a lot of time I could actually be spending on making something.
  • I use Linux so I wanted something that was easily cross platform. By choosing Java this means Windows, Linux, Mac OSX and even Android will be possible using the same code.
  • I chose JMonkeyEngne as the base for my efforts. This conveniently has support for Ogre models, so loading assets is going to be way easier.
  • More people know Java, it would probably be easier for others to get involved in the project.

But you might say .. “Java, isn't that terribly slow?”. Well, perhaps it's not the language you'd think of first when it comes to 3d games, MMOs especially. However ..

  • Java is not that slow. It is a mature technology with good runtimes available.
  • JMonkeyEngine is "Shader Based". This effectively means MOST of the hard rendering work is done by the GPU, same as any other modern engine in any other language.
  • Much of Earth Eternal is interpreted anyway, i.e. written in a scripting language (Squirrel to be precise). So if all the currently scripted bits were rewritten in Java, really this would be no different to the current game. Add to that Java has a good JIT compiler, and in the end the performance of this part of the game would likely be better.
  • Earth Eternal is an old game now, based on 6 year old tecnology for the most part. Newer cards have features that help boost performance.
  • Computers now have more cores. Wherever possible my client will take advantage of this. For example, JMonkeyEngine supports multithreaded physics, and many other background tasks can be moved off onto different cores improving performance of the actual game.

Master Plan

So how far am I going to take this. Well, all of the way, hopefully :) As you can imagine though, this is no small task. So, to break it up a little, here is how I see this going :-

Alpha0 - The Acorn

ETA: May 1st 2015

This is the very first stage. Upon completion, you will be able to ..

  • Login to a PF server
  • Create, Select or Delete your character (default clothing only, Hart race only)
  • Be placed into your grove (“Blend” groves only with NO props)
  • Chat with your friends
  • Add friends to your friends list or ignore those you don't want to listen to
  • Equip or de-equip your default armour

That's it. So basically at this stage it will be a glorified chat room. I am actually close to completion this stage, it could be ready in a month or two.

Alpha1 - The Seedling

ETA: June 1st 2015

The primary focus for this stage will be grove editing.

  • All current editing features will be replicated.
  • An improved build-mode will be available with a greater focus on user-friendliness. For example, all grove tools will have icons that may be place in toolbars for easy access.
  • A selection of (not all) props and spawns will be available.
  • A user oriented environment editor will be available. Create you own skies! See note below.
  • A user oriented terrain editor will be available. Create your own terrain! See note below.
  • Re-implementations of PF specific client mods for grove editing (prop generator etc)

Some features will require additional server support if they are to be shared to other players. Until (if ever) this happens, custom terrain and environments would be local only.

Alpha2 - The Sapling

ETA: August 1st 2015

Here I intend to focus on interaction. This will include :-

  • Vendors. Sell/buy stuff (from test vendors in grove)
  • Vault. Move stuff to/from vault (again from grove)
  • Test Quest Givers (yes, again in grove)
  • Test Loot (blah blah)
  • Selecting NPCs or other players (with all interactions except combat)

Further editing features will be added here too :-

  • Creature Tweak
  • Item Preview
  • IGF (time allowing)

Alpha3 - The Yearling

ETA: December 1st 2015

Firstly, escape the confines of the grove into the real world :-

  • Complete and efficient terrain, clutter, scenery and spawn loading systems.
  • Loading, caching and decryption of assets from the PF HTTP server.
  • Obfuscation of Java bytecode and/or native compilation. The only real viable native compilation option is http://www.excelsiorjet.com/. The only valid reason for doing this to protect any encryption keys (and even that as we know is not foolproof!). It also gives slight startup time advantages although the JIT compiler negates any performance increases once loaded.

And start fleshing out the actual gameplay.

  • Improved particle system. I am waiting on the improved JMonkeyEngine particle system for this. The current one is pretty basic. To reproduce EE combat effects this will be needed.
  • Intial abilities and combat system (including UI)
  • Combat animations and sound effects.

Note, this stage will depend on a lot of good will from Greth. I do NOT currently have any encryption keys, nor every asset used in game. To be able to load any assets from the server I will need information on the encryption formats as well as the private key or passwords used to encrypt.

Beta1 - Young Bark

ETA: February 1st 2016

First playable version

  • Complete abilities and combat system
  • Crafting and other speciality systems (refashion etc)
  • Re-implement remaining Planet Forever client mods (scaled dungeons etc)
  • Anything else I've forgotten

At this stage there should be a millions bugs :) so ..

  • Public bug tracker goes live
  • /bug in game bug reporter
  • Start working on hardware specific bugs (they WILL exist)

Beta2 - Strong Trunk

ETA: April 1st 2016

Nearly there ..

  • Fixed all collected Beta1 bugs.
  • Implement Android specific user interface.
  • Final user interface review. All existing PF client functions should be as good as or preferably better!
  • Final gameplayer review. All gameplay actions should be possible
  • Final performance review. Establish base hardware requirements, reduce where needed/possible

Release1 - Baring Fruit

ETA: August 1st 2016

We made it! Planet Forever is now 2/3rds original :)

  • Swish and professional installers for all platforms
  • Webstart client (launch from web page)
  • Applet client (run IN browser)
  • A good platform to really start making some improvments :)

More Information

iceclient/introduction.1434820720.txt.gz · Last modified: 2015/06/20 18:18 by emerald