Terminal - A space voxel game

Hello fellows,

So a little history behind this project: I’m a 15 year old high school student who got interested in Java in the beginning of this year. I later decided to try out LWJGL and see what I could make with it, and this is the result.

So, what’s the idea?

The idea is, as said, a space voxel game, located far into the future where humans rule the galaxy. The main thought I’ve been thinking about is some kind of FPS dogfight game, where you’ve got a mothership with several fighters that you steer in first person perspective. This idea is a ‘dream’ idea though (as you might even guessed), I’ve got no faith in my self that I will make something that massive, so I began smaller.

Heavily inspired by 0x10c I decided to make some sort of room editor that you could walk around in and modify with placing blocks. I’ve also been built a virtual CPU that got it’s own assembly-like language.:stuck_out_tongue: And that’s pretty much where I’ve got so far:

Atpn-XiHwLU

(Sorry for the lags, and bad quality. Shitty QuickTime)

The engine is built on the core profile (> 3.2).

But, there is a big ‘but’. :stuck_out_tongue:

I’m currently struggling heavily with more advanced linear algebra (picking for example, in the video it just enables if the block is inside the xyz value of the other blocks, no ray at all) and shadows with point lights (got it working with directional lights though). So I’m kinda tempted to scale down to 2D and do some other ideas. All in all, this is my first project, and I think I’m pretty right when I say that I aimed a little too high. :stuck_out_tongue:

So what do you guys think, should I go on or do something else?

There is a hell of a lot of combined experience on this forum. If you have a problem we can provide the help to get through them. With a little more info on what you do and don’t know maths wise, we can easily help. At 15, presumably you’re studying maths and know a fair bit of algebra so I suspect the problem lies with your knowledge of the more specific stuff. Like vector maths (dot/scalar and cross/vector products and the like). That is easily remedied.

As for what you should do, I wouldn’t advice a newbie to start in 3d, but since you have and seem to be doing okay I wouldn’t advice just leaving the project and doing nothing with it.

I would say keep going with this project until you get too frustrated to continue. Then go back learn 2D. I actually started my OpenGL career like this, and it didn’t turn out to bad. It gave me a taste of 3D, and then I learned all the functions in a 2D environment. After my next game I plan on making, I want to get back into 3D. Its been since Christmas and I’m interested to see how far I could get in a voxel game now!

@quew8 In relative to what’s the problem, it’s just ray-quad intersection. I’ve tried many solutions, but it seem to never get really accurate and good (as said, my temporary solution is just to place a block at my cameras look direction and check if that block’s position is ‘inside’ the different faces). Any help would once again be heavily appreciated! :slight_smile:

In relative to my math knowledge, I would say that it’s not perfect, but I understand the basics in linear algebra.

Here, I don’t know if you’ve seen this, but this topic has a lot of info on developing voxel games. The page I linked you to specifically has info on face picking:

Hi,

It look very interesting what you are doing. Keep trying on it. I will post the source code for the picking when I get home. There are lots of people who will be able to help too.

Source code is good but perhaps a tutorial is better. Here’s one I prepared earlier. http://www.wildbunny.co.uk/blog/vector-maths-a-primer-for-games-programmers/ Purely for the vector maths.

NB: I most certainly did not make this myself in case the previous statement suggested that.

Thank you so much for the support guys, but after some reflection today, I think I’ll just lay this project on ice until further and make something in 2D. Just because I’ll make progress much faster and actually enjoy making it, rather than banging my head against the desk because I’m struggling with problems most of the time.

But who knows, I’m only 15, and maybe I’ll come back to this when I got some more experience. Anyways, I’m truly grateful for this project, I’ve learned a ton about OpenGL, Java, vector math and much more that I can take with me in the next projects.

Once again, thanks for providing the support. :slight_smile:

Hello again folks.

I haven’t been doing a lot on my 2D-game in the past three weeks. I also started to dislike the ideas. Therefore, I sat down one evening and just said to myself that I was going to fix the picking on Terminal no matter what, because that was an idea I really liked. Some guides and some C++ code later I had it working quite nice. It gave me a huge boost and I’ve been working a lot on this project since.

The picking isn’t pixel-perfect, but it’s a hell of a lot better than last update.

Here’s the changelog (Pre-alpha 0.0.5):

  • Picking.
  • BuildCubes (just cubes that you can scale, resize and move around).
  • Smoother jumping.
  • Importing and exporting shapes.
  • A console for commands.
  • Lots and lots of refactoring.
  • Optimizing.

nl3CLypzlvA

I like the way you manipulate the cubes in the last video. Rather then simply adding and deleting them, all the transforming faces. :smiley: