Developing a Java3D library in pure Java

I remembered a great book I read years ago called Developing Games in Java by David Brackeen.

In it he actually develops a 3D game using pure Java drawn on canvas - and it performs amazingly well!

You can get the code here:

I wish someone would pick up on this to make a library out of it. Even if this doesn’t do everything the ability to do basic 3D without any dependencies would be amazing.

I would do it but I don’t understand the math. But I’m willing to assist in any way if anyone picks up this idea.

Thanks!

I started game programming myself with that same book in 2011. It was a great book, but when it comes to modern games, you do want to use the features of the hardware as available.

Developing without any dependencies sounds good, but in production perspective, it will hold you back a lot in reality. Using dependencies is actually a smart thing to do.

4 Likes

Hello

What’s wrong with using dependencies? I don’t see what is amazing in your suggestion, I find it rather naive and your assistance would be nonexistent as you don’t understand the math. Writing an engine can require months or years of work.

There are already some “good” software renderers written in Java, for example the one included in 3DzzD and an OpenGL 1 emulation in pure Java. As you don’t understand the math, your assistance in such a project would be almost nonexistent.

Why would I listen to a “supposed” smart person who doesn’t understand the word “nonexistent”?

Having only recently started to use Maven myself, and only just getting comfortable with it, I can relate to the OP’s desire to avoid the complications of adding dependencies. There is something very appealing about being able to keep a project within the bounds of core Java. Doing so also has a benefit of simplifying the packaging process, especially if doing it manually. That said, the benefits of working with dependencies almost always outweighs the costs.

I think mentions of Dzzd’s work and the OpenGL emulation renderers adds to the conversation. It’s good to acknowledge the necessity, utility and hard work that goes into creating such a libraries. But let’s not put out the flames of enthusiasm by applying too much cold water.

1 Like

I did that with a game I wrote, SimCar : All custom software 3D rendering, and custom physics:

https://github.com/YvesBoyadjian/SimCar

This was interesting, but doing so, I did not learn how to use a 3D library like OpenGL, or did not learn how to use a physics library like ODE.

Writing a 3D java library without any dependencies is not very useful. The rendering is software, so not good performing. If you really want to be independent from the graphic card, you can still use MESA3D FOR WINDOWS, which does OpenGL software rendering:

https://fdossena.com/?p=mesa/index.frag

It’s more valuable, to learn how to use libraries like LWJGL, ODE4j, in doing so, you will progress faster.

And for a ready to use 3D java library, you can check my library on github, Koin3D

3 Likes

Very cool! I’ll check it out.

Thanks. My day job work is in business software where we deal with many library dependencies which can be painful.

Lately I’ve been polishing a library that I developed that people might like here. It’s a wood simple, convention over configuration ORM with zero dependencies. I wrote it originally for an RPG game I was working on but have used it frequently over the years in “real” situations. It’s high performance and supports many different DBs. At some point when I finish merging in all my changes I’ll put it up on github and post a link.

2 Likes