Java coders needed for a voxel multiplayer game: Rituals of the old

Hello. I’m the project leader of Rituals of the old. We need Java coder(s).

Rituals of the old is a multiplayer sandbox RPG voxel game of crafting, building, survival, and adventure in an open random generated world.

Check out our web page to get the mood of the game (the screenshots are a bit out of date and might not represent the current state of things accurately, sorry): https://www.ritualsoftheold.com/

(Scroll down this post for some extra images)

Our lead dev is starting his military service next year and we need to find more talented people to patch the hole he’s going to leave behind. We’re currently pretty much down to one coder + I’m trying to brush up my Java/Kotlin skills to be of more use with the code base in addition to everything else.

  • Hobby project, doing this on our free time (reserving the right to go commercial in the distant future if it looks like it might make sense).
  • We’re going to open source most of the non-game specific things which might be useful to other game devs (voxel engine, etc) under MIT license.
  • There are currently 11 people on our international team (https://www.starandserpent.com/team/) - coders, animators, modelers, etc.

The game is going to be hard, aimed at an adult audience (don’t want to let age ratings stop the creativity - of course we need torture, duh), focused on the sandbox aspect, and support for roleplaying a character designed from ground up, heavy focus on all things multiplayer, and of course modding support.

Also check the post below (http://www.java-gaming.org/topics/java-coders-needed-for-a-voxel-multiplayer-game/38838/msg/370756/view.html#msg370756) for some extra info on specifics.

So why would you want to do this instead of working on your own projects?

It’s a very common and valid question and deserves a straight up answer.

Game development alone is hard. Most people dream about it, dabble in it for a bit, become disillusioned, and fail to produce anything tangible for their efforts.

We have a serious project going on that was in pre-planning and testing as a mod on another game platform for 4 years. We have been in active development now for over 2 years.

As a part of our team you would be one step closer to realizing your game development dreams. With us you will gain insights into game development and into working in a small/medium sized group (11 people currently, international team). You will gain experience and practical skills about the inner workings and challenges of voxel engines, multiplayer networking, world generation, networked physics - and many other aspects of game development - in a supportive group environment.

That’s my sale speech. If you’re not interested for any myriad of reasons, I totally get that.

But I’m not going to stop trying.

Contact

Feel free to hit me with any questions here on the thread, or PM me, or email us directly (email address is on our web page: https://www.starandserpent.com/)

Hoping to hear from you.

Java coder, you’re our only hope!

Regards,

Poika Pilvimaa
Star and Serpent

Any information about what sort of framework the game is currently using? Java is pretty open ended. LWJGL2? LWJGL3? JOGL? LibGDX? JMonkey? JPCT? Ardor3D? What sorts of skills are you looking for in developers? Do you need help with networking, graphics, game programming?

Anything extra might help you find the right person. This looks like it could be a cool project to work on! If I wasn’t already tied down I’d jump at it.

I hope you post more here with updates as they come, we all love to see active Java development!

@Pilvinen
Noted and leaving a tactical dot but, i still think i dont really qualified to work for you

@orange451
its jmonkeyengine

Right. I totally missed that one, sorry, and thank you for pointing it out! I’ll go over some details.

First of all, we try to leverage available libraries when it makes sense and when their licensing permits it (basically any permissive licenses like MIT, Apache, etc which are not viral/copy left licenses are fine). We also try to make use of well documented industry standards and methods which have proven effective. What I’m trying to say is that we’re not trying to reinvent the wheel if we can avoid it.

We’re using JavaMonkeyEngine as a base to build on. Although when working on a voxel game it’s usefulness becomes a bit limited, but it’s still a good foundation and the community is very nice and helpful. JME helps us especially with importing the 3D models, animations, controls, etc.

For those who are not familiar with JavaMonkeyEngine (http://jmonkeyengine.org/), it’s more like a collection of tightly integrated libraries as opposed to a comprehensive development environment. Although it does come with some tools - which may or may not be useful.

For AI we were thinking of starting with the excellent LibGDX-AI (https://github.com/libgdx/libgdx/wiki/Artificial-Intelligence). It showed the most promise over anything else we encountered. The AI is going to be using behavior trees, which personally I find really fascinating and cool. I love logic. Implementation has not started yet.

We were already building our own UDP networking library, Venom, but then decided to ditch it for Aeron UDP library (https://github.com/real-logic/aeron/wiki), which admittedly is primary meant for streaming originally, but streaming has so many overlapping characteristics with what we need for voxel data that we decided to use it. The implementation is not finished and is currently on pause due to lack of proper dev time.

Existing physics libraries have very limited use for us unfortunately because, well, voxels, Java, and all that. So we were thinking of building our own library from scratch. Planning phase was started, but it’s currently on pause because the coder who was working on it became too busy with his personal life.

We considered several Entity Component Systems, but eventually our lead coder decided that they were all a bit too complex for our needs and we simply implemented our own. Currently it’s a frame to build on the actual logic. All the basic functionality is there, but it doesn’t really do anything, yet.

World generation has been in planning phase for quite some time, but our focus has been so far more on the features and how things could possibly be implemented rather than doing any design work on the code. However, we were planning on building a similar system that has been described in Thomas Würstle’s excellent master’s thesis “Realistic Biome Generation for Procedural Maps using Essential Climate Principles” (https://tenjix.de/projects/climate-based-biomes/)

EDIT:
Oh, and of course we have been working on our own voxel engine, Terra, for quite some time. We’re going to open source that under MIT license when it’s in a condition that we don’t embarrass ourselves. Currently we have infinite world. We’re going for round planets with torus mapping, most likely. It seems like the best option right now. Mega texture support is working. Modifying the voxels is not supported yet. It’s kind of hybrid between octrees and chunks where we use octree node to either contain chunk data or as a reference node which basically says “this whole thing here contains 100% block type X”. RLE compression. What else…

I can’t think of anything else pressing right now, but feel free to ask for more information.

Well. We usually get a lot of applications from last year CS students, who don’t really have any prior game development experience which would be helpful in our particular case. There are a lot of people out there who have taken a Java course and who have dabbled a bit with Unity or maybe Unreal Engine, but that doesn’t really prepare them for game development with Java.

When they contact me I usually walk them through firstly of what I personally think about game development in general - that it’s hard and can be very stressful at times and you require a special mindset to be able to ignore the occasional discomfort/depression and to be able to push through all the while still producing something. There’s a common misconception that game development is fun, you know, because games are fun, right? And game development is and can be fun, but a large portion of it is hard work that can eat your mind if you’re not careful and keep a balance in your life.

Secondly, I talk about the specifics of what we work on - that voxel games, especially multiplayer voxel games, are from the deep end of the pool, and while the general concepts are rather simple and straightforward a working implementation which is fast enough to be viable - is not. It’s easy to get terrible spaghetti code.

I’m not saying it’s not something a clever person can’t do. But prior experience helps. And there’s a huge learning curve. If you’re not familiar with concepts like ECS, if you don’t have experience with multiplayer physics, multiplayer networking - and so on - you have a shit ton of learning to do before you can do anything useful with any of those. That means you have to have the drive to study and learn for months.

And that’s usually the point where people stop replying to my messages.

So in practice, for example when we stumble upon cool stuff like the rather recent NVIDIA paper on “A Ray-Box Intersection Algorithm and Efficient Dynamic Voxel Rendering” (http://jcgt.org/published/0006/02/01/) we read that through and we’re like “OK, that sounds like fun” -> two weeks to implement it, because we’re that stupid - can’t do it in a day like some people I know.

But of course even if you don’t understand any of that it doesn’t mean you can’t be helpful. And you’ve got to start learning somewhere if you know for certain that game development is something that’s close to your heart. We don’t know everything. We learn as we go. We ask for help if we hit a wall. And we help each other.

And then on the other hand we’ve had a lot of people join up and then quit on us because they just couldn’t make it through. Either it was way over their heads or they just got distracted by life.

It’s important to think about what you really want. Personally I have intense drive for this even though I’m totally clueless with the really low level stuff. We all need help along the way. You learn by doing.

@Pilvinen

i dont know what to say to you. Thank you about your knowledge about game programming man

i wont join you in near future because :

  1. I did have many self agenda about learning, work on something, and etc
    learning about java libraries(it could be many things) and android development
    learning about html5(im sorry my kin, im a traitor ;D (whoops wrong emoji (even more useless brackets) ) ) and its libraries
    suggest me more about learning programming on something
    working on project that i already had set my heart on
    looking up about some game marketing
    and at this point it seems look ridiculous that i can digest all of this thing ???

  2. on recent event i had a bad relation about working together on some project
    so im kinda down a little bit and questioning that about myself “was i good enough?” or other things that i didnt know

so i say i am sorry if i say ‘no, not now’ to you man…

Don’t be sorry.

You’ve got to take care of yourself, that’s always the first priority. You have to keep in mind that people are just people. They are no better or worse than you, no matter what they’d like you to believe. It’s just a power game. Sometimes they act like dogs - so treat them like dogs - don’t be offended by their barks.

All the best to you!

It’s been almost a month. Let’s bump this up.

We’ve received 5 applications so far, but everyone stopped replying me after a few emails when it became apparent to them (?) that game development is hard.

So, we’re still looking for Java/Kotlin coders. Want to help us with a cool project? Check details from the original post above.

Either reply here, PM me, or email me directly at info at starandserpent dot com.

Martha, the carrion spirit. Concept art bust model.

still no luck about recruiting? ???

I have little experience in 3D dev and I’m bad at math :frowning:

No, unfortunately.

It’s very difficult. I’ve pretty much exhausted all my personal contacts. I tried contacting some schools too. The teachers were very excited, but I never got any applications through there.

We get maybe 20-40 applications per year on the average. From those a great majority drops out after 1-2 emails back and forth when they realize they don’t have the skills or the inclination to learn. From those ~30 we get maybe 1-4 new coders per year who join us all in all. From those three out of four drop out after a couple of months. Usually because they realize that they can’t do it / it would require too much learning and they didn’t realize it before.

So that leaves us with maybe 1 coder per year. And people come and go as their life situation changes. Some stay for the long term, but it doesn’t happen often.

Most applicants are CS students. We’ve had a few senior developers too - and we have one right now - but it’s more of an exception. And it’s perfectly understandable - if you code for a living it’s very likely that you don’t want to do it on your free time, or if you do you already have enough projects to last the next decade.

I’m not very hopeful about the odds, but what can you do? You’ve just got to keep on trying.

That makes two of us :slight_smile: but I try to improve myself and learn a little bit more every day about myself, about other people, about computer stuff, science, arts, mathematics, etc.

When I started out with this 6 years ago I didn’t really know anything. I just jumped right in. Well, I mean, I’ve been working with computers for better part of 33 years. And you’re bound to pick up a few things when you keep banging your head on a wall long enough. But I’ve never had any official qualifications for anything that I do. It never really stopped me.

It took me quite a while to realize that this is what I want to do. Back then when I was at school studying “computer sciences” - what that meant was welding, pneumatics, electrical engineering, and other crazily irrelevant things. I went to study that stuff full of enthusiasm and came out disillusioned. They didn’t really teach you coding and all that useful stuff back then. You were completely on your own - and there was no internet, not like we have it now. So you couldn’t just Google up things and learn. I really wish I could have used that ~30 years to get a head start, but I had no one to teach me and life took me to other direction.

And now I’ve come a full circle and I’m pursuing my childhood dream. I really don’t know if anything will come out of it, but I know for absolute certainty that nothing good will come out of anything if you don’t try - and keep on trying.

the best i can do is to add some complexity on your code to confuse the heck of you(im just joking) ;D
i just only have very basic skill-set about java

now, im currently working on my project html5 with game engine libraries (melonjs)

If you are failing to find developers you may need to consider:

a) Raising funds and hire developers
b) Change to a platform with more active developers
c) Put the project on hold and make something simple

Thank you for your suggestions. :slight_smile:

Don’t want to throw a spanner in the works but…

Why aren’t you using something like Unity3D for this? Most of these challenges (such as Voxel engines, networking etc…) are very specific to the games industry. You might have better luck finding talented individuals in a community that specializes in games development.

Voxel management in a networked environment is something i’ve taken an extensive look into previously, and am happy to contribute some ideas if you have an open source process for the project. Open sourcing earlier than later will also allow bootstrapping a community quickly, and it’s something that can take years to achieve. So if you have some code now, might aswell do it now and start getting learnings around the process.

If open source is not an option and i’m guessing the project has zero funding, do you have some process in place that will incentivize/pay the employees with company shares etc? Some clear go-to-market-strategy will also help increase confidence for a more serious demographic looking to jump into the project. Having a clear startup company structure will also allow you to get some nice perks via Amazon AWS (up to 5 grand in credits) which can help you bootstrap launching your game sooner with minimal out of pocket expenses. Maybe these are some things you can take a look into ;D

I’m a little surprised that someone at java-gaming.org would suggest making a Unity game. Unless things have radically changed since the last time I had a peek, I don’t think Java really works well with Unity.

That aside, well, there are several practical reasons why we didn’t go with Unity. When we were starting out we spent a couple of months going over all the game engines, development environments, and libraries, and in the end we decided to go with Java and JME because. The main reasons are:

  1. That’s where our strengths lie.
  2. Everyone and their grandmother knows Java.
  3. It’s attractive for modding in my opinion (scripting with Kotlin)
  4. JME -> Open source, great community. It’s a big plus.

I suppose Unity would have been our second choice. But we’ve been developing it with Java now for over two years - on our free time.

And none of the existing game engines are particularly well geared towards voxel games and the problems you’re likely to face. You don’t get any advantage by choosing one environment over another when you’re building your own voxel engine.

About open sourcing.

Our lead coder was very strongly against open sourcing anything until we have something that is somehow “complete” and works. I kind of found that a bit counter intuitive, but I didn’t push the issue.

We have had plans right from the start to open source and release the voxel engine and other things - which are not directly related to the game (and which do not pose a security risk) - under a MIT license.

It’s of no consequence to us and might be helpful to other devs. Keeping everything under wraps when there’s no good reason for secrecy is just pointless. Wonderful things have come out of open source.

The game itself - art, assets, game logic - will need to be closed source. But we can easily open source specific technologies which can be decoupled from the game, like the voxel engine, ECS, etc.

And yeah, we have zero funding for paying people.

I’m funding the software licenses, servers, websites, Github, etc from my own pockets, which are not really that deep. The expenses are still under 10 000 $.

While crowdfunding has a nice ring to it, at this point it’s not a realistic prospect.

It only makes sense to put any effort into that when you’ve already got at least a working demo and other flashy visual stuff and you’re close to getting the game out. It’s super super expensive to pay people for their work and a team with 10+ people will burn though 100 000 - 250 000 $ in a heart beat. It’s not a realistic development model in long term unless you are already sitting on a pile of money.

What you get from crowd funding is mostly marketing money, candy money, and peanuts. Only the very lucky few can succeed with crowd funding alone unless a shit ton of people already know you and your previous work.

There has been some early investor interest in the project, but I’ve turned them all down as I don’t feel comfortable with someone breathing down our necks whose only interest in the project is monetary - and on top of that it would require too much outside money if we were doing this as our day job … I’ve thought it all through and made a lot of calculations - it just isn’t feasible that way at this point.

Also, we’re not a company. It’s just a fun project for now that I’m deeply invested in because it’s a game that I really want to do.

I don’t hold any loyalty to any particular language/framework, use the tools which will provide maximum results with minimal effort ;D. I know well over 12 programming languages, 8 of which are currently being used in a commercial capacity.

Besides, Unity3D uses C# which is incredibly similar in syntax with Java.

I agree, I cannot help you with any ideas/code until you open source. Software is never complete, open sourcing will allow input from individuals from a whole range of backgrounds and will let you decide what to “keep” and what to “toss away”. There are incredibly talented and skilled individuals out there who are more than happy to jump into projects they find fascinating/fun to work with. I myself love to dabble with Voxel engines.

You are going to have a hard time keeping unpaid talent. Young people nowadays need to worry about mortgages which are 10x their maximum pay, uncertain economic activities, raising interest rates and tightening credit, intense industry competition and the list goes on. You will have to find some way to compensate them or find another model that works.

Just a fellow trying to help you out ;D

Right.

It’s a good thing you brought this up.

I will present your arguments to him and have a chat about it. Terra (our voxel engine) is already decoupled from the rest of the code and under MIT license. So publishing it should be as easy as 1, 2, 3.

I guess the biggest issue right now is that after Terra v2 update we don’t have a proper working test game. So it’s not very fun to play with, yet. But that is our next milestone - getting everything working and doing some work on pre-requisite mechanics like physics, world generation, etc, which we’ll be happy to open source as well so people can build their own games.

Just open sourced our voxel engine, Terra, under MIT license. Warning, it’s heavily WIP. But the test game should work, AFAIK.

You can find it here: