Terminated Project

Project Terminated. Thank you.

Reminds me of RuneScape Classic or something :o
On a more constructive note though, if you’ve spent 2 years developing this I would expect to see a thread with a bit more effort behind it. For example, a 60 second video featuring some demonstrations of the functionality you’ve implemented.

Looks really impressive but it’s a shame that it doesn’t use hardware acceleration.

Forgive me, it’s late and it was all I could pull together.

P.S : I do not know how to record videos. (and the engine doesn’t have too much functionality so what would I show you?).

Thank you though!

I didn’t use hardware acceleration for a reason: To learn more about 3D mathematics and also rendering techniques.

I use Hypercam for my video captures. And I just mean, if there is 1+ years of effort surely there are some things (even if minor to project outsiders) that you would be proud to share solely because you’ve accomplished development yourself with no fancy 3D wrappers or libraries.
Also, is the source code hosted on github or anything? I would like to browse it just to see how you did some things. I’ve done quite a bit of 3D but never without GL or Java3D

Edit: Maybe just a quick in game video of you walking around the map and executing a few test cases to show what the application is capable of doing so far?

I’ll look into Hypercam, and I understand what you mean. If I were to divide that two years into a pie chart, it would look like:

As you can see, I spent a good portion of my time trying to get that 70+ FPS that you see in the images, and a good portion of time learning about the maths. It was not to optimize either because you have to balance readability and speed in a good program.

Hi

Sorry to contradict you but Java2D is partially (and badly) hardware accelerated. Therefore, your game doesn’t run entirely on the CPU except if you ask Java2D to do so which isn’t its default behaviour.

Java2D as in the entire java.awt package? I do not use java2D for the 3D graphics rendering, I am using separate line drawing algorithms and I have my own class that deals with color. The only thing I use java2D for is the coordinate and fps information and the crosshair.

Judging from the feature list, this sounds more like a game engine than a 3d engine, but anyway…it’s nice to see some software rendering. A demo would be great!

A 3D game engine :stuck_out_tongue:

You wrote that you use the standard Java APIs, you probably use an AWT container or a Swing container, Frame or JFrame. Then, you use Java2D, which is hardware accelerated by default.

Yes, I use Frame. I did not know that Frame was hardware accelerated. Are there any non hardware-accelerated options?

Yes, but that’s academical. In a software renderer, you usually set pixels in some (Buffered)Image instance and blit that onto the screen. This kind of pixel drawing is not accelerated by Java2D in any way. The screen blitting is hardware “accelerated”, but because it has to update the whole content for each blit, Java2D’s hardware acceleration often hurts more than it helps with this task.

Yes, I do that, I draw the pixels onto a BufferedImage and then use the Graphics class to draw that onto the Frame.

There is a flag to disable DirectDraw, another one to disable OpenGL and another one to disable Direct3D:

  • sun.java2d.noddraw=true
  • sun.java2d.d3d=false
  • sun.java2d.opengl=false

However, some pipelines use some native code that relies on hardware acceleration on a few platforms, for example under GNU Linux when XRender is used. There is no mean of doing everything only on the CPU on all platforms but I don’t contradict EgonOlsen, only some code paths are hardware accelerated in Java2D.

Okay, thank you for the useful information.