Java-Gaming.org    
Featured games (79)
games approved by the League of Dukes
Games in Showcase (477)
Games in Android Showcase (107)
games submitted by our members
Games in WIP (536)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Java port of Doom-Engine?  (Read 2947 times)
0 Members and 1 Guest are viewing this topic.
Offline kpars

JGO Wizard


Medals: 75
Projects: 4
Exp: 3 years


Radirius Software Developer


« Posted 2013-06-08 09:57:42 »

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

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!  Grin

Check out #JGO on EsperNet IRC! | Check out the MERCury 2D Java Game Library! | Also, Check out My Site
Offline 65K
« Reply #1 - Posted 2013-06-08 11:01:56 »

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.

Offline Danny02
« Reply #2 - Posted 2013-06-08 11:16:12 »

there is a port of the quake engine to java, called Jake
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline deepthought
« Reply #3 - Posted 2013-06-10 02:08:47 »

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.



jocks rule the highschools. GEEKS RULE THE WORLD MWAHAHAHA!!
captain failure test game
Offline kpars

JGO Wizard


Medals: 75
Projects: 4
Exp: 3 years


Radirius Software Developer


« Reply #4 - Posted 2013-06-10 04:24:47 »

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.

Check out #JGO on EsperNet IRC! | Check out the MERCury 2D Java Game Library! | Also, Check out My Site
Offline phu004

JGO Coder


Medals: 4
Projects: 9
Exp: 10 years


NoSuchPersonException


« Reply #5 - Posted 2013-06-10 05:22:48 »

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

JGO Knight


Medals: 30
Projects: 2
Exp: 3 years


Zero but not.


« Reply #6 - Posted 2013-06-10 11:58:18 »

If you remade Heretic I would have no choice but to love you forever.
Offline deepthought
« Reply #7 - Posted 2013-06-10 19:35:58 »

NICE! did you use OpenGL or software rendering?
If you remade Heretic I would have no choice but to love you forever.
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.

jocks rule the highschools. GEEKS RULE THE WORLD MWAHAHAHA!!
captain failure test game
Offline gouessej
« Reply #8 - Posted 2013-06-11 00:12:09 »

Not to speak of the C <-> Java gap.
Jake 2 is faster than Quake 2  Grin Forget your gap. If it's slow, it's (probably) your fault.

Offline kpars

JGO Wizard


Medals: 75
Projects: 4
Exp: 3 years


Radirius Software Developer


« Reply #9 - Posted 2013-06-11 00:46:45 »

NICE! did you use OpenGL or software rendering?
I used Software rendering.

Check out #JGO on EsperNet IRC! | Check out the MERCury 2D Java Game Library! | Also, Check out My Site
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline deepthought
« Reply #10 - Posted 2013-06-11 03:25:29 »

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?

jocks rule the highschools. GEEKS RULE THE WORLD MWAHAHAHA!!
captain failure test game
Offline kpars

JGO Wizard


Medals: 75
Projects: 4
Exp: 3 years


Radirius Software Developer


« Reply #11 - Posted 2013-06-11 03:42:40 »

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.  Sad

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.  Smiley

Check out #JGO on EsperNet IRC! | Check out the MERCury 2D Java Game Library! | Also, Check out My Site
Offline relminator
« Reply #12 - Posted 2013-06-11 04:32:25 »

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?


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.
Offline 65K
« Reply #13 - Posted 2013-06-11 07:23:53 »

Not to speak of the C <-> Java gap.
Jake 2 is faster than Quake 2  Grin Forget your gap. If it's slow, it's (probably) your fault.
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.

Offline gimbal

JGO Knight


Medals: 25



« Reply #14 - Posted 2013-06-11 12:43:17 »

NICE! did you use OpenGL or software rendering?
If you remade Heretic I would have no choice but to love you forever.
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.

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.
Offline kpars

JGO Wizard


Medals: 75
Projects: 4
Exp: 3 years


Radirius Software Developer


« Reply #15 - Posted 2013-06-11 13:47:16 »

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. Smiley

Check out #JGO on EsperNet IRC! | Check out the MERCury 2D Java Game Library! | Also, Check out My Site
Offline relminator
« Reply #16 - Posted 2013-06-11 16:30:09 »

So is it raycasting or polygons?
Offline kpars

JGO Wizard


Medals: 75
Projects: 4
Exp: 3 years


Radirius Software Developer


« Reply #17 - Posted 2013-06-11 17:04:22 »

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

Check out #JGO on EsperNet IRC! | Check out the MERCury 2D Java Game Library! | Also, Check out My Site
Online Agro
« Reply #18 - Posted 2013-06-11 17:17:48 »

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. Cheesy

Offline relminator
« Reply #19 - Posted 2013-06-11 17:27:02 »

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. Cheesy

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.
Offline kpars

JGO Wizard


Medals: 75
Projects: 4
Exp: 3 years


Radirius Software Developer


« Reply #20 - Posted 2013-06-11 17:39:53 »

Alright guys, Here's the actual thread for KDoom, so all feedback for it should go there.

Check out #JGO on EsperNet IRC! | Check out the MERCury 2D Java Game Library! | Also, Check out My Site
Offline deepthought
« Reply #21 - Posted 2013-06-11 19:28:37 »

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.
uhhh.... noo...
Opengl doesn't do anything with rays. Opengl projects primitives into 2d space and uses perspective correct texture mapping. Lighting is an approximation based on distance and angle, and shadows are a whole other hack.

jocks rule the highschools. GEEKS RULE THE WORLD MWAHAHAHA!!
captain failure test game
Offline Longor1996
« Reply #22 - Posted 2013-06-12 13:36:44 »

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. Cheesy

If OpenGL would be a RayTracer we could have:
- Built in infinite Resolution for Curved Surfaces
- Built in Realtime Reflections (Mirror)
- Built in Realtime Refractions (Glass)
- Built in Realtime Ray Scene Traversal (Portal)
- etc. etc.

OpenGL is a library that takes primitives and draws them onto the screen using matrix projections, as deepthought said.

Have a nice day.

- Longor1996

Sorry for my bad English! That's because i am from Germany.
Offline gimbal

JGO Knight


Medals: 25



« Reply #23 - Posted 2013-06-12 14:27:20 »

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. Smiley

Its not a stupid reason at all, it is something different and well worth it to figure out how it worked; at the very least it is entertaining to do and get a prototype working, especially nowadays where you can just create a dumb, unoptimized and more readable version that does not need assembly to get it to perform well enough. I like to revisit the classic techniques myself and wonder how they did it back in the day.
Offline jediman

Junior Newbie





« Reply #24 - Posted 2013-07-08 18:19:18 »

Entirely based off of raycasting.


I'm fairly sure The Cherno's code is very similar to Notch's Prelude of the Chambered (http://s3.amazonaws.com/ld48/index.html), and it doesn't actually do any raycasting at all Tongue It's all just perspective texture projection.
Offline kpars

JGO Wizard


Medals: 75
Projects: 4
Exp: 3 years


Radirius Software Developer


« Reply #25 - Posted 2013-07-08 18:46:11 »

Thank you for that  Cheesy

And yes, I know The Cherno used Notch's code. He never gave any credit, sadly.

Check out #JGO on EsperNet IRC! | Check out the MERCury 2D Java Game Library! | Also, Check out My Site
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

CogWheelz (15 views)
2014-07-30 21:08:39

Riven (21 views)
2014-07-29 18:09:19

Riven (14 views)
2014-07-29 18:08:52

Dwinin (12 views)
2014-07-29 10:59:34

E.R. Fleming (32 views)
2014-07-29 03:07:13

E.R. Fleming (12 views)
2014-07-29 03:06:25

pw (42 views)
2014-07-24 01:59:36

Riven (42 views)
2014-07-23 21:16:32

Riven (30 views)
2014-07-23 21:07:15

Riven (31 views)
2014-07-23 20:56:16
HotSpot Options
by dleskov
2014-07-08 03:59:08

Java and Game Development Tutorials
by SwordsMiner
2014-06-14 00:58:24

Java and Game Development Tutorials
by SwordsMiner
2014-06-14 00:47:22

How do I start Java Game Development?
by ra4king
2014-05-17 11:13:37

HotSpot Options
by Roquen
2014-05-15 09:59:54

HotSpot Options
by Roquen
2014-05-06 15:03:10

Escape Analysis
by Roquen
2014-04-29 22:16:43

Experimental Toys
by Roquen
2014-04-28 13:24:22
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!