How was JMonkeyEngine created?

2D games are just images moving up and down on the screen, but 3D games are amazing, jME have to draw 3D shapes on the moving screen, calculating physical and shadows from the perspective of a camera, this is extraordinary. My question is how the “Core Developer” managed this knowledge.




…and using a lot of info about math that some people generously don’t keep for themselves but make public :wink:


But yeah… we rock…


If you want to look a bit deeper in creating an engine, you could watch the tutorials of Thin Matrix. It isn’t such a large engine like jMonkey, but you will soon get an idea of what has to be done.

Sure! That’s why we are here!

1 Like

I will watch these tutorials, thanks!

Yes, you (by you I mean all of you) do rock. Not probably said often enough! Thanks.

“3D Game Engine Design” (Eberly)
“Game Coding Complete” (Mc Shaffry)

Yes of coarse . Thanks all of you . I am an amateur member and do my best to be a member of this rock group . I wish I can :grinning:

…here is the one of the best videos about making 3D engine you could have…its straightforward, doesnt include any API to clog you over topic and it starts from simple line and dot and evolve in to full 3d engine (Doom3 , sort of)…extremely well presented whats going on behind scene of any 3d engine in its fundamentals…enjoy…

1 Like
  1. Some crappy OpenGL tutorials which are probably 404 pages right about now
  2. A few academic papers that happened to have code samples (the ones that didn’t were too incomprehensible and thus promptly thrown in the bin)
  3. Late weekends where a head banging on desk was a common theme

But yeah, anyone can write their own game engine. They are mostly similar to each other anyway.


Which kind of metrics do you use to measure how much awesome something is? :smile:


2D games are more than that. 2D games and 3D games have a lot more in common than you think. The third dimension adds a lot complexity. If you have never created a 2D game, I advise you to do so before attempting to create a 3D game.

It’s not extraordinary when you spend some time to understand how it works. I suspect that the book “3D Game Engine Design” written by David Eberly inspired lots of engine creators, especially a few of them who contributed to JMonkeyEngine and Ardor3D.

I don’t advise you to create your own engine if you want to create a game. It’s an interesting pedagogical exercise, there are a few chances that an engine created by a single person can rival with JMonkeyEngine but it can help to learn some concepts.

I created a proprietary engine at work several years ago and a free engine in 2007 but I really think that contributing to an established engine is more efficient on the long term. When you create your own engine from scratch, you reinvent the wheel and it’s rarely a better one. I’m just proud of having implemented a few algorithms almost entirely absent of all known open source engine written in Java even in 2015. I’m still very reluctant to put my implementations under a permissive license, they will stay under GPL :smile: It concerns mainly mesh optimization and spatial subdivisions. Surprisingly, it required some knowledge in 2D too :wink: for example to optimize the repetition of tiles.

I always wondered how they made the game levels in those old Doom and Heretic and Duke3D games. For the art I can imagine some Paint style and PovRay style tools, but the 3D level design… back then in the early to mid 1990s … just amazing. :chimpanzee_smile:

There were level design tools. I made lots of Doom WAD files ‘back in the day’. For Doom, you could draw the map in 2D (because Doom wasn’t really 3D) and set attributes for each of the areas like floor height, ceiling height, light type, light amount, textures, etc… Then you’d run some tools that would crank out BSP information and so on.

Quake was trickier because it was really 3D. There were a couple different decent level editors.

1 Like