Voxel game project: Rituals of the old

That sounds very cool.

I’ve also been thinking about building trees procedurally - from blocks. The branch angles, tree length, thickness, branching etc would be entered in and the procedural generation would create trees based on this which would resemble their real life counterparts. And to make it easier for the world generation we could, for example, pre-generate these tree models - for example 20-100 variations per tree and save the models. So a compromise between being completely organic and random generated in real time and between being efficient and looking pretty much random.

yup thought exactly about the same thing, saving them for later use. But not saving them would save HDD space if you have for 20GO of model, and it is possible to send the generation in Multi thread and might end quicker to just generated then load on the HDD.

Anyway this is speculation of performance, Depend on your RIg for the best performance. Anyway good luck with your project! :slight_smile:

I don’t think HDD space is really a problem with modern computers. What matters more is the speed at which you can transfer voxel data over the network. And this is where pre-generated things come in real handy. You basically only have to create them once and send the configurations over and then if the data is unmodified it’s simple enough to refer to them very tersely.

Also it might be a helpful approach in other scenarios such as with seasons … but there might be better solutions to that. Anyway. It’s always helpful to know where things are and what their shape is instead of everything being 100% “anonymous” voxel data that you have to iterate over to do interesting things.

The best of luck with your project as well, my good sir.

Of course i am using a Seed so every player generated the same trees and rock then only download an Array of Int/Char (Whatever i might use).

But my point is I personally am tired of non ending loading and loading on the HDD is so slow (No SSD since we will consider a game of 50 go and normal user pc) If you consider a CPU can generate over 1000 Trees in 5s VS loading them in 30 sec, The choice is quite easy. Loading the cpu is worth it more and the only thing the user need is Lots of ram :stuck_out_tongue:. Also you could just wait for the Model request to generate in Concurrency the missing model then snapping it to the Node once loaded.

There is many way of doing this. Maybe for you doing 1 single file with all the models might be a better idea since you were talking about small number. To me i m talking about big tree with lots lots lots of vertices :O.

Benchmark will tell me when my Generator is 100% complete. Right now it s extremely quick to make trees trunk with lots of polygone. I might lets you know once i m there how much space generating them take once there.

Sounds interesting. Looking forward to it :+1:

Testing connecting blocks with old textures. Gonna replace these eventually with PBR textures.

5 Likes

Progress on horse model.

Poll on drugs and alcohol in our game is up in case you have an opinion on the subject:
https://www.ritualsoftheold.com/community/d/59-intoxicants

Trying out the voxel renderer on the new NVIDIA 2018 paper “A Ray-Box Intersection Algorithm and Efficient Dynamic Voxel Rendering” (http://www.jcgt.org/published/0007/03/04/).

We don’t have yet texture support or any optimizations in place.

Very interesting stuff.

What you’re looking at is a 1024x1024x1024 block static test scene with traditional polygon orb mesh intersecting with the voxel plane.

5 Likes

https://streamable.com/iic23

The work on the IK is going forward. A bit buggy still :sweat_smile:

For my taste it was badly written and Java is superior to Kotlin :wink:

Anyway, how is the game progressing? Alpha, beta, …? Any playable stuff yet or any demos?

Thanks for the useful constructive feedback. I will take your words of wisdom to my heart and use them to become a better coder!

Game is progressing very slowly now. Our lead coder is starting his military service. We’re down to only one coder who is working on the project on his free time after work.

It’s a very unfortunate situation. Finding Java coders for a hobby project seems next to impossible. We’ve been looking for coders now for over two years and while we get some from time to time most of them don’t really have the required skills right from the start and almost all of them lose focus when they find it hard and quit.

Not to be discouraging–but have you considered scoping down to a smaller project? Most of the game programmers who will have enough experience to be useful to you will have worked on one or more “dream project”, and have been burned by how difficult they are to complete. Open-world games and voxel games in particular have a bad reputation as being somewhat intractable, and I suspect that many programmers will run away from that. Finding a less ambitious project might allow you to assemble a functioning team and release. If you get particularly lucky, the team will want to stay together and try something as ambitious as an open-world voxel game afterwards.

I wish you luck either way. :slight_smile:

Well, considering that I spent 4 years in pre-plan and 6 months in picking the technologies, building the team, etc. I have to say - the thought has crossed my mind.

When we started out we knew very well it was one of the more difficult things you can do in game development. We already knew and weighed in the mental stress, changes in people’s personal lives over the course of the several years we knew the project was going to take. We even considered for a time how we would handle things like death if someone in the dev team died before we were able to finish.

So, yeah. We thought about all that and more.

And we still were stubborn enough to go ahead and proceed with the project and the considerable monetary investments it was going to require over the years - even with all the red flags waving.

Do I ever think “Oh, I wish we had done a fucking 2D game instead of this”? Yeah, of course I think about that from time to time. But I also knew with 100% clarity what I was getting myself into.

I get depressed from time to time from working on the project ~8-15 hours per day. Time I could be spending with my family and kids. I watch them grow up around me - and I’m still working on the game. And they will be teenagers before I’m finished.

How do I handle the pressure, mood swings, and criticism? I handle it like a pro, because this is absolutely what I want to do with my life. I can’t think of anything better.

When I get depressed or mentally strained from working on one thing for too long → I switch my focus on another aspect of the game. When I get tired with that → I switch my focus again to distract my mind.

On my down time I do research for the game, or I play games or watch movies which have something to do with the premise of our game, or I go out for a walk and take reference photos for the game, so I can constantly learn and move forward even while I’m resting. And I write down ideas from my dreams. I have been thinking about this all the time for 6 years. I’m obsessed about this.

That which is not moving - is dead. There’s only one way, and that’s forward.

7 Likes

Kudos to you. A very honest and entirely real life of a software developer. Keep going, my friend. :heart:

4 Likes

That being said, don’t neglect your family on your “white whale” project.

The reality of game development is that you could spend a decade making a perfect game and still no one plays it. For the hundreds of games that ‘make it’ every year, there are many many thousands of games that didn’t make and were JUST AS GOOD.

So, if you are ok with spending a decade on a game, missing your kids growing up, etc. just to say, “Yes, I made this thing” at the end with no other benefit… then go for it. Because that is more likely the reality.

Next: there are hundreds of things to learn about actually releasing a game that have nothing to do with developing the game. You undoubtedly will have to do it a few times before getting everything right. Do you want to go through all of those learning tries with your “baby”? Probably not. (Maybe you’ve already released games before?)

I just caution strongly against the sunk cost fallacy that seems to be at play here. They say that sharks have to keep moving forward or they drown… but they get to choose which way they go. They will not pass up a small school of fish here to chase that giant white whale forever and die of starvation.

Put this way: if you cannot even release a small game then you have no idea what awaits you when trying to release a big one. I’m always amazed at the amount of work just to get a simple game “finished”.

…and I speak from a position of chasing my own white whale. Definitely don’t neglect your family. They will be gone before you know it!

Edit: I realized after writing this that you may not be a developer and just “managing” the thing… in which case I guess developing smaller games and getting them out really isn’t an option.

3 Likes

Thanks, Paul.

I won’t. But it’s still eating a lot of my life. I have kind of a strange relationship with that. Sometimes when you’re in the zone everything is absolutely perfect. And then at other times it’s just hard.

I do game design, 3D, music, SFX, graphics, websites, managing, server maintenance, etc. Pretty much anything that is needed.

I don’t really consider myself to be a coder. It’s an area where I’m uncertain about myself. I try to get better at it, and I really love it, but I have high standards and I can’t really say that I live up to those standards when I look at myself objectively. I still have a lot to learn about Java.

I’ve made a few small games by myself, but nothing this big before. It’s an ambitious project.

I also want to say I’m a big admirer of your work. I think what you’re doing is great and admirable. And I know life hasn’t been easy for you. Hang in there, buddy. We root for you.

Progress has been slow recently, but we’ve been working on world generation:

And animations and some tree related stuff:

6 Likes

Weltschmerz (our world generator) is now connected with Terra (our voxel engine). This is only a very preliminary version and there’s still a lot of work to do, but most importantly the pipeline is working.

Also now with greedy meshing.

We are still looking for more coders, please help us:
https://hub.jmonkeyengine.org/t/star-and-serpent-is-looking-for-a-coder-to-join-voxel-game-project/39301/59

3 Likes

Performance improvements


Hit a bottle neck with memory before FPS.

736 x 736 meters.
10 million triangles.
21.5 million vertices.

Currently eating about 14 GB of memory.

When I opened Chrome web browser (with my ~100 open tabs) everything slowed down to a crawl because I ran out of memory.

It’s not bad, but it’s definitely not good either. I am very happy that we’re fast approach a breaking point where the whole thing becomes minimally viable. It’s been hard three years of work and planning and things are finally coming to fruition. It’s a great feeling.

There’s still a ton of work to do. And we’re also experimenting alternative approaches to greedy meshing, but nothing on that yet.

Now open sourced under MIT license

https://github.com/starandserpent/terra-test-game
terra-test-game - Test game for Terra, depends on Terra, Weltschmerz, and JavaMonkeyEngine.

https://github.com/starandserpent/Weltschmerz
Weltschmerz - Terrain generator for Terra.

https://github.com/starandserpent/Terra
Terra - Our voxel engine. Was already open sourced before, but I’m mentioning it here for the sake of being thorough.

Help us out? We need volunteer coders, seriously

https://hub.jmonkeyengine.org/t/star-and-serpent-is-looking-for-a-coder-to-join-voxel-game-project/

Come and chat or hang out

EDIT:

Oh, here’s a better video than the previous one. But this is not quite the latest version. It was recorded before any optimizations:

2 Likes