Xcylin is an open-world RPG that puts you on a planet where you need to explore, craft, and fight in order to survive. It features a strong story and a sophisticated dungeon generation system to ensure that no two missions play the same. Many challenging dungeons with their own secrets await you, and invite you to explore the history of an ancient alien race and the technology they left behind.

Story

A vast planet hidden in the outer reaches of space, ruins of a long extinct civilization. You awake in the wreck of mankind's first and only interstellar starship, lightyears away from earth. Soon to find that you are humanity's last hope for survival from a disaster. A disaster that was supposedly caused by the inhabitants of this alien planet.

As you explore strange landscapes, you can't shake off the feeling that you are not alone ...

Looks good very impressive so far, I have seen a lot of these engines similar to another popular game, so my question is what will make this game unique?

Thanks. I know the open world genre is a very popular one at the moment. I think Xcylin will be different to most of them because of two things:

The storyline. When I started to play Minecraft I really loved the game. It was fun to play and I spent hours playing it - but: after a few days it got boring and I asked myself: why? And the answer is quite simple: the things you an do in Minecraft are nearly unlimited but also of no consequence because there is no real story besides of fighting the npcs that get quite boring after you got better weapons. My plan is in Xcylin to tell an epic story that drives the player, that gives him a direction. But don't get me wrong here; I still want this to be an open world game - so you can do whatever you want. And because the worlds are randomly generated every game will be different. You will for the most part still have to find the same things, but they will be at entirely different locations, hidden in completely different dungeons.

And even if Xcylin itself will get boring one day (all games will come to that point eventually) the engine offers the ability for users to create their own world that is completely different to the Xcylin world. Therefore everything is defined in Javascript, a language that a lot of people today are able to use. So modding Xcylin is not an option of a future realese but it is built in into the engine from the beginning. I also intend to have some kind of exchange platform in place for the user generated worlds.

I like the screenshots. Keep up the good work. Do you use JMonkeyEngine 3? Do you plan to release the source code?

Thanks, and yes I'm using jME 3. Unfortunately the source won't be available (at least for some time) as I plan to sell the game. But I don't want to dismiss the possibility that in a few years after the release I will release the source under an open source license.

... because I know that it will be a lot of fun to play when it is finished and I really want to play it

That's great motivation! Can't wait to play*!

*) if you plan a demo

I think it is important to get feedback from the community as soon as possible - so there will be at least some sort of alpha version. My only problem is that if the story/quests change somehow, the old savegame will be incomplete or not working correctly - so this could be frustrating ... but I will think of something ...

Looks pretty cool, reminds me of Dysis (how did that game go, anyways?)I think the most important part of your graphical style will be to perfect the look of simultaneously using pure 3d models and voxels (works very well in the first screencap but looks a bit more odd in the second one). Good luck!

I think the most important part of your graphical style will be to perfect the look of simultaneously using pure 3d models and voxels (works very well in the first screencap but looks a bit more odd in the second one). Good luck!

I'll try my best. I also think I will limit the use of custom meshes as they can be a significant performance impact. But only blocks is also not ok, because they are not expressive enough in some way.

Apart from the language choice (ugh, JavaScript, I think that you've made an excellent choice with the dynamic nature of the project.

I know I also was like that before I took a closer look at Javascript. Yes it is a weak typed language but Rhino is a real good interpreter implementation that allows to call and use all Java Objects directly in Javascript (of course I implemented an interceptor to make sure that just the ones I want to expose are available in JavaScript though). Furthermore the learning curve is much lower for an interpreted language than it is for a strictly typed compiled language like Java. Also I know that most of the scriptkiddies that say they can "code Javascript" are far away from really understanding and mastering the language at all. But it is quite capable and elegant programming language if used correctly, I can assure you!

To answer Jimmt (and since lastdigitofpi invited me to) Dysis started out as an FPS, and still has some FPS features in it, but now focuses a lot on RTS as well. The game is going well, and we are just about to start the next phase of our testing (our second batch of Kickstarter backers and soon the public). Here are a couple recent screenies from Dysis:

As you can easily see the grenade needs to hit something three times before it "explodes" by removing blocks in a certain range at random. Note that all the visual implications (like dropping loot/blocks, ...) are done automatically by the engine. Also the item gets removed from the world after hitting three times - so basically it could also explode multiple times.

There is one init() method that tells the engine where the texture for the item is and one onHit() method that gets called when the item hits any other object. In general there are more methods like that but you only need to implement the ones that you really need - missing methods are just ignored (if they are not mandatory, of course).

I plan on creating a wiki where all accessable objects are described in detail.

But it is quite capable and elegant programming language if used correctly, I can assure you!

Javascript arguably has a number of advantages over Java, by having first-order functions and lack of static typing. (Strict typing is a solution for a problem that largely disappears if you do thorough unit-testing... and if you don't, you have larger problems to worry about.) I've been meaning to learn Clojure one of these days.

Did you have any specific ideas on the story framework? Open world + story driven can certainly be done, but genuinely integrating the two is relatively rare.

Javascript arguably has a number of advantages over Java, by having first-order functions and lack of static typing. (Strict typing is a solution for a problem that largely disappears if you do thorough unit-testing... and if you don't, you have larger problems to worry about.)

Yes - first order functions are quite a nice feature that Java is still lacking of (if you don't count the callable interface). Static typing on the other hand saves you a lot of unit testing - but I agree: if you write tests, javascript can be quite stable as well but of course you can't test for everything

Clojure is a nice approach but it is not an imperative language but a functional one. This makes it more complicated for beginners to learn. But it is interesting never the less. It also is quite good if you want to create a visual language on top of it, as functional languages are the only ones that have implicit execution order (that's also why they are so good for multithreading).

Did you have any specific ideas on the story framework? Open world + story driven can certainly be done, but genuinely integrating the two is relatively rare.

I know that this is quite a challenge. Roughly the story is about getting back to earth with a lot of XcyT (a material only found on Xcylin - hence the name). To achive that you need to either repair the ship or create some kind of teleportation system. All parts of doing either of that are hidden in various locations on Xcylin and if you find one it points to where the other can be found. Around each I plan to build some quest - by an automatically generated dungeon or something like that. Each quest allows you to create better weapons, better armory and better tools. Some quests/sidequests might also only be accessible if you have the right laser/weapon/tool (like in the old Zelda series where you needed the glove first before you could lift the heavy stones). Other parts to the plan need to be digged by searching for them underground like in Minecraft. Furthermore you also have the constant threat of the creatures living on Xcylin also at first you won't even notice them

Looks pretty spiffy ... though I keep wanting to call it "Xyclin", which is a brand name for doxycycline

Rhino is pretty slow compared to other JS engines, but soon enough you'll have Nashorn to play with. Wouldn't be my first pick as good languages go, but as goes familiarity with it among the community, it is hard to beat.

Rhino is pretty slow compared to other JS engines, but soon enough you'll have Nashorn to play with. Wouldn't be my first pick as good languages go, but as goes familiarity with it among the community, it is hard to beat.

Not really heard of Nashorn until now (other than that it is a german word) - looks interesting but the speed is not the problem at the moment. At least not the speed of the JS engine. More the lighting calculation is quite CPU consuming - but it runs asynchronous in multiple threads so it's also quite fast. But I'm thinking about maybe doing OpenCL lighting at some point - noticed just yesterday that my graphics card is only at about 28% when I run around on Xcylin. On the other hand the graphics card is a brand new HD7970

How do the tumbling blocks work? Do you take them out of your voxel structure and put them in a physics engine like jbullet?

Yes - I remove them from the voxel tree (yes a tree - as it is much faster!) and then create a jbullet object. They are also limited in amount so that the physic engine won't start to slow down the game too much. When they fall down you can just collect them to put them to your inventory.

Yes - first order functions are quite a nice feature that Java is still lacking of (if you don't count the callable interface). Static typing on the other hand saves you a lot of unit testing - but I agree: if you write tests, javascript can be quite stable as well but of course you can't test for everything

I have noticed I have this odd habit of making every variable I can 'final'. Hmm.

What I actually found most intriguing about clojure was the built-in default assumption that variables are immutable. That's handy for multithreading, but in theory it would also adapt well to incrementally simulating various state-based scenarios, which is a large part of AI programming. (GOLOG is explicitly designed around that idea, but I think that's pascal-based...)

Quote

I know that this is quite a challenge. Roughly the story is about getting back to earth with a lot of XcyT (a material only found on Xcylin - hence the name). To achive that you need to either repair the ship or create some kind of teleportation system. All parts of doing either of that are hidden in various locations on Xcylin and if you find one it points to where the other can be found. Around each I plan to build some quest - by an automatically generated dungeon or something like that. Each quest allows you to create better weapons, better armory and better tools. Some quests/sidequests might also only be accessible if you have the right laser/weapon/tool (like in the old Zelda series where you needed the glove first before you could lift the heavy stones). Other parts to the plan need to be digged by searching for them underground like in Minecraft. Furthermore you also have the constant threat of the creatures living on Xcylin also at first you won't even notice them

*shrugs* Works for me. I just get a little tired of the situation you find in a lot of games, where you can go wherever you want and do whatever you please... as long as it's irrelevant.

I have noticed I have this odd habit of making every variable I can 'final'. Hmm.

I don't really think this is odd. I also recently started declaring everything final - this saves you a lot of trouble sometimes. On the other hand I found that it helps nothing for performance as modern JVMs will declare most of the variables final by itself if it discovers that it is impossible for them to ever change.

What I actually found most intriguing about clojure was the built-in default assumption that variables are immutable. That's handy for multithreading, but in theory it would also adapt well to incrementally simulating various state-based scenarios, which is a large part of AI programming. (GOLOG is explicitly designed around that idea, but I think that's pascal-based...)

I have to admid I never used GOLOG or read about it (but I will when I have the time).

It is true that some machine learning algorithms are using some kind of state machines (like expert systems e.g.) - the more capable but also more complex solutions on the other hand (like recurrent neuronal networks for example) use a lot of possibility (float) related calculations, so constants won't help much there

*shrugs* Works for me. I just get a little tired of the situation you find in a lot of games, where you can go wherever you want and do whatever you please... as long as it's irrelevant.

That's exactly what motivated me to write Xcylin. By the time I started the game I was in fact busy writing my diploma thesis so I really didn't have time for a game - but the thought of a minecraft like game where you really have a mission and are not just wandering around erecting some irrelevant buildings and fighting of the always same mobs was just too compelling for me Needless to say that I fell in love with the blocky lego-like design, the simplicity and depth of voxel games!

I have to admid I never used GOLOG or read about it (but I will when I have the time).

I really want to start a project based on relatively heavy-duty AI like that, since it opens the possibility of some truly dynamic NPC behaviour and dialogue, but I'm afraid of getting badly distracted. *sigh*

Quote

That's exactly what motivated me to write Xcylin. By the time I started the game I was in fact busy writing my diploma thesis so I really didn't have time for a game - but the thought of a minecraft like game where you really have a mission and are not just wandering around erecting some irrelevant buildings...

Well, I was talking more about the situation you'd have in, say, Final Fantasy, or most of the Mass Effect trilogy- where you have freedom, and you have plot, but the two are at complete cross-purposes.

Without getting into a discussion about theme or drama or whatever, what I'd honestly like to see is where you have some long-term objective (get off the planet would be fine,) but the implementation of that goal is as free-form as possible.

Well, I was talking more about the situation you'd have in, say, Final Fantasy, or most of the Mass Effect trilogy- where you have freedom, and you have plot, but the two are at complete cross-purposes.

Without getting into a discussion about theme or drama or whatever, what I'd honestly like to see is where you have some long-term objective (get off the planet would be fine,) but the implementation of that goal is as free-form as possible.

A storyline and a free open world game are hard to combine - either you get a something like in most Betesta games, that you have a main story thread to follow but a lot of sidequests that don't influence the main story other than that you level up/get better weapons. Or you have something like Minecraft where the main story does not really exist but you can create your own objectives to follow. Both things get boring after a while I guess, but the thing in between is close to impossible to accomplish. But I never the less will try to implement something like that in Xcylin. Still the game has to be finshed at some point so I think I won't implement recurrent neuronal networks to control the AI

java-gaming.org is not responsible for the content posted by its members, including references to external websites,
and other references that may or may not have a relation with our primarily
gaming and game production oriented community.
inquiries and complaints can be sent via email to the info‑account of the
company managing the website of java‑gaming.org