Now Playing Tracks

Survive and Prospect progress - part 1

I think it is time to share some news about progress with you.

What have I done in the last month? Not too much changed on the server side (mostly fixes and small improvements), but client underwent a revolution.

Java2d failed me when it came to lighting, so I gave JOGL a chance and I must say that I am really impressed - it is shipped with many useful utility classes and is fully object oriented. Switching to it with LWJGL and Java2d experience is painless and take very short time as JOGL API is somewhere between these two API’s - Java2d elegance combined with LWJGL power and possibilities. It also easily integrates with Swing via GLJPanel while LWJGL can’t.

Furthermore, client got many new mechanisms like: smooth movement simulation, detection of entities at mouse location and event-driven communication with server. I found some free assets (textures, music and sounds) which I am able to use as placeholders, at least until I will find artist. In my opinion music quality is very good, so it will probably stay for longer.

Few samples (by Alexandr Zhelanov and Kevin MacLeod):
http://opengameart.org/content/castlecall
http://opengameart.org/content/colonization
http://incompetech.com/music/royalty-free/index.html?isrc=USUAN1200111
http://incompetech.com/music/royalty-free/index.html?isrc=USUAN1100357

More info next month!

New project reveal!

I think I can finally reveal my new project on which I am working since about two months - Survive and Prospect!

Survive and Prospect is the game from sandbox MMORPG genre set in the 15/16-th century western Europe - in times between Middle Ages and modernity, in era of new discoveries and still common medieval traditions. Main slogan of S&P is absolute freedom - without any NPCs, predefined areas, cities, where players are the main driving force behind the game, creating their own houses, farms, castles, cities or even countries.

From the technical side - both client and server use 2d environment, networking is done using KryoNet.
Core aspects of server (map, entity and clients management) are already done, now it is time for mechanics - many of them are already planned.
Client is based on Java2D rendering - it don’t need extreme performance as graphics will be rather simple. I cannot show any screenshots yet, because I am using placeholder graphics everywhere and server development still needs more attention. I will be REALLY happy if I will find artist who is willing to join the project. :)

You can expect new info every few weeks, with time news will become more frequent, detailed and regular.

Java tip: useful libraries for gamedev

Lists of all libraries which in my or general opinion are useful in Java gamedev, with brief comments:

Graphics

  • Java2d - presence of this library on this list may be surprising, but you will never find anything better for quick prototyping/idea testing, though it is useless for “real” tasks.
  • LWJGL - mother of almost all higher level graphics APIs, personally - favourite graphics library.
  • LibGDX - if you want to develop your games both for desktops and phones or can’t understand/don’t have enough time to learn pure OpenGL, this is the best choice. This library also contains many other useful libraries.

GUI

  • TWL - very easy to use yet powerful GUI library. It is very hard to find any complete GUI styles for it, but you can easily make a new one.

Physics

  • jBox2d - it have very odd API, but you can get used to it in few days and then it becomes really easy to use. Can be used only for 2d.
  • jBullet - physics library for 3d environment.

Networking

  • KryoNet - VERY easy to use, fast library for everything needed for networking/server programming - sending objects over net, saving game/server state, logging.

This list will be updated over time.

Another map preview from almost final version of the generator - it still needs some polishing and trees generation, but things like exporting map data to text file are already done. I decided to make biomes more random, because this looks better. Futhermore, terrain shape is much more interesting now.

I found the use for this generator - expect details about new project when I will have something to show. :)

Do you remember first procedural generation experiment on this blog? It changed since last time. :)

DeedPlanner is still my main project, but when I want to do something different I am improving this little, 2d world generator (world is initially generated in 3d for more detailed terrain and then translated into 2d space). As you can see, it is still rather simple, but I am working on adding biomes and more varied terrain.

LWJGL tip: basic shapes

If you must do quick prototyping or testing, LWJGL have few useful but not too well known classes in org.lwjgl.util.glu package such as Cylinder, Disk or Sphere.

Example usage (drawing circle perimeter, assuming you use 2d projection and pixel coordinates):

Disk disk = new Disk();
GL11.glPushMatrix();
GL11.glTranslatef(x, y, 0);
disk.draw(r-1, r, 100, 1);
GL11.glPopMatrix();

To Tumblr, Love Pixel Union