Java port of Doom-Engine?

Has anyone ever thought about how great having a Doom-Engine port for Java would be? :clue:

Really, has anyone seen, made, or even thought about creating something like a Doom-Engine port for Java? It could power so many new games. Too bad the name jDoom is taken. I DEMAND SOMEONE TO MAKE THIS NOW! ;D

There used to be a port years ago.
However, I wouldn’t base any new game on a 20 years old game engine. Not to speak of the C <-> Java gap.

there is a port of the quake engine to java, called Jake

the DOOM engine would be a great starting point for a first 3d game engine, but it uses SPRITES for Pete’s sake It’s not really something you want to try to do modern things on. Just LOOK at how you have to do slanted floors and monster AI in ZDOOM or Skulltag, and that’s added code it took them several years to write on top of the original DOOM code.

If you want to write your own version, go ahead. Do your research on the WAD format and billboarding. I’ll be glad to give you advice, but nobody’s just going to write the engine for you.

I of course know that nobody is going to write an engine for me, which perfectly explains why I have worked on this thingy for the past 4 days :wink:

Really, I am super proud of this. I’ll need to make a thread about it soon or later, hehe.

The Mocha Doom Project is the only playable Java port exists I believe. By the way Kdoom is looking good, keep it up :slight_smile:

If you remade Heretic I would have no choice but to love you forever.

NICE! did you use OpenGL or software rendering?

Man, i had so much fun playing multiplayer on heretic. You would hear cussing every time you used the morph ovum to turn someone into a chicken, then every player on the map would go after it.

Jake 2 is faster than Quake 2 ;D Forget your gap. If it’s slow, it’s (probably) your fault.

I used Software rendering.

I bow down to your math skills. I tried writing a software renderer once when my laptop’s GPU died, but i scrapped it when i got a new one.
Is the renderer affine or perspective correct?

Entirely based on perspective. Well, I believe at least.

The rendering code itself is from TheCherno off of YouTube, I decided to view a couple of his 3D Game Programming videos and then build the engine on top of what I had saw there, so I can credit him for that. They were the only (some-what) broken down tutorials on how to build a pseudo-3D engine in Java. It’s more of a learning project than a spot-on port of the Doom Engine, I do NOT have enough skill to accomplish something like that. :frowning:

I’ll be posting more info about the game in a separate Thread, so anyone wanting to comment on that can go there once it’s ready. :slight_smile:

Looks perspective to me.

I not sure if it’s a polygon engine though. Looks like it’s rendered with vertical strips a.k.a raycasting.

I was not at all talking about execution speed but about different language paradigms. It usually makes no sense to do procedural programming in Java, without very good reason, e.g. a wrapper like LWJGL.

That! I actually made my own levels to do just these things. The game ain’t over until you managed to peck someone to death.

The main reason I decided to make it Pseudo-3D was to give it a “Doomy” feel.
It’s probably a stupid reason, but I felt like this had a more “Doomy” atmosphere to work on than something using OpenGL. No idea why. :slight_smile:

So is it raycasting or polygons?

Entirely based off of raycasting.
Nope. I was wrong. It’s perspective based.

Yeah, things like OpenGL use ray tracing, which casts a ray for every pixel on the screen. Then it does all the polygon intersections with loads of stuff involving light sources and other stuff.

Ray casting is a “fake” 3D perspective because it only draws 1 ray for each vertical column of the screen. It finds any intersections, and based off of the distance from you to that “block” on the map, It will draw a line that is a certain height. The main disadvantage to this is that you can’t have sloped walls, jumping, free looking, etc. All of these problems are fixed when ray tracing is implemented. :smiley:

I’ve implemented sloped floors with raycasting and you can jump but not much. No freelook though. Heck even in a polygon engine freelook is still tricky to implement uf you’re using euler.