Java-Gaming.org Hi !
Featured games (91)
games approved by the League of Dukes
Games in Showcase (798)
Games in Android Showcase (234)
games submitted by our members
Games in WIP (865)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1] 2
  ignore  |  Print  
  Hydro's Game Engine  (Read 65253 times)
0 Members and 1 Guest are viewing this topic.
Offline Hydroque

JGO Coder


Medals: 25
Exp: 5 years


I'm always inspiring a good time.


« Posted 2016-05-31 03:54:02 »

So i've been working on a game engine. It is 3d and the first game I want to make with it is a 3d shooter. It is a work in progress.

My favorite part of my game engine so far is that the code that you write looks nice and polished, even though its down to the core. I tried to avoid as much hard coded things as I could.

It uses 2.9.3 lwjgl, but i use vaos and shaders, nothing fancy. I use the Display class.

My intention here is not to promote my engine or ask others to use it. I'd like it to serve demonstration purposes and helpful methodologies.

It comes complete with...
Minimalist obj model loader
Textures
Shaders
Gui using pixels and screen coords over ratios
Lua Engine and Customizable default library support
Multitexture support
Openal sound, using wav
Keyboard input framework
I ripped lwjgl Keys class so I could customize it for minimalists everywhere
Scenes from file
Fps and delta time class
Uncustomizable flat terrain generation (does it in batch too, specified size and triangle count)
Dynamic vao/vbo
Twl pngdecoder class
Materials for shaders
And probably more
Custom positional classes (vectors, matrices)

Wip...
Support ogg audio
Batch rendering
Configuration files for rendering and windows
Draw text (seems odd to include cuz hardcoded)
Animations
Particles
Physx
2d gif support (dynamic img)

Dependencies...
Just load up the one in lib
And use LWJGL2
Note that build uses LWJGL2 Util (I just finished up migrating from it  Smiley)

Download link

Looking for suggestions too - update my wip.

You think I haven't been monitoring the chat? http://pastebin.java-gaming.org/c47d35366491fHere is a compilation <3
Offline thedanisaur

JGO Knight


Medals: 59



« Reply #1 - Posted 2016-05-31 05:24:51 »

link?

am I missing something?

Every village needs an idiot Cool
Offline NegativeZero

JGO Kernel


Medals: 341
Exp: 1 month or less


Zero but not.


« Reply #2 - Posted 2016-05-31 05:57:53 »

What features are you going to include in your engine that aren't present in other engines, such as jMonkey and Unity?

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline ShadedVertex
« Reply #3 - Posted 2016-05-31 08:52:01 »

The game development community is saturated with people who think they can create the next big engine, or people who think that creating an engine can benefit others. These people are deluding themselves. There are several game engines which use Java as the primary programming language. We've got jMonkeyEngine, Ardor3D, Jake2, Jogre, SilenceEngine, Slick 2D, LibGDX, PlayN...the list is pretty long. Some people use other libraries, like Java2D and even JavaFX. Some engines are old, others are new and grant the users more control and offer more freedom, with new features that improve the performance, look&feel and everything about the game.

I advise you not to become like the aforementioned people in the game dev community. Don't attempt to release your game engine for everyone to use, because frankly speaking, we probably won't end up using it. It's not because we dislike you. We don't have anything against you. But after SilenceEngine (which is a really ambitious and feature-rich engine), I think JGO doesn't really look forward to yet another engine.

But that's UNLESS your engine has features that we've never seen before, or if your engine can boost Java's reputation in the game development community, like what jME did several years ago. We certainly look forward to something revolutionary.

However, it's perfectly fine if you continue to develop your engine. You can use it for your own games, or you could be like me. For every project that I start, I create a new engine from scratch using OpenGL (LWJGL), each time trying my very best to improve and optimise my code. It's an effective method to learn and master the skills that you've picked up.

Good luck Cheesy
Offline Hydroque

JGO Coder


Medals: 25
Exp: 5 years


I'm always inspiring a good time.


« Reply #4 - Posted 2016-05-31 10:14:14 »

Thats pretty much what i do too. I like how you are cautious of my goal, but i never told you my reasoning. Its learning and good resources to others, especially if they run into a pro blem that is locking them. Say me learning projection matrices a while back. I was locked into cant go on with that.

Open source learning tools which work are great!
Articles trying to explain implementations is not so great! (NeHe annoys me)

My current engine doesn't really lack much but what I said. Although idk like to support things other than png and obj files. I never learned the formats of others and i don't even fully support obj files (absolutely no need to use g and o).

It is different from unity because its open sources and not going to be like unity what so ever. Unity is plain gross to make games in. As for jmonkey, i don't know enough about it to make a statement other than mines a wip that is going to be the core to all my games probably. Jmonkey is probably locked source, documentation on implementation, or both.


You think I haven't been monitoring the chat? http://pastebin.java-gaming.org/c47d35366491fHere is a compilation <3
Offline CopyableCougar4
« Reply #5 - Posted 2016-05-31 11:47:30 »

jME is open source: https://github.com/jMonkeyEngine/jmonkeyengine.

Either wandering the forum or programming. Most likely the latter Smiley

Github: http://github.com/CopyableCougar4
Offline Ecumene

JGO Kernel


Medals: 200
Projects: 4
Exp: 8 years


I did not hit her! I did not!


« Reply #6 - Posted 2016-05-31 18:05:07 »

But that's UNLESS your engine has features that we've never seen before, or if your engine can boost Java's reputation in the game development community, like what jME did several years ago. We certainly look forward to something revolutionary.

(I'd hate to derail OP's thead but...)

Why put that feature in an engine? What we need is a library for physics, graphics, audio, input, whatever and people mesh whatever they need in the middle, making one all-encompassing piece of software to me sounds overkill.
If you don't like how your graphics, physics, audio engine does things use another one or make a pull and change it.

As for learning from re-inventing the wheel, I'm all for it but it won't make you a better game dev, a better game engine programmer maybe.

Offline Hydroque

JGO Coder


Medals: 25
Exp: 5 years


I'm always inspiring a good time.


« Reply #7 - Posted 2016-05-31 19:59:58 »

I totally agree with you. We have little to no support for some serious audio libraries and stuff. What we have is minimal. But you know... Just use paulscode.
Understanding the background and how opengl stories does make you better than say unity, for you understand and have a lower level to work with which grants performance.


You think I haven't been monitoring the chat? http://pastebin.java-gaming.org/c47d35366491fHere is a compilation <3
Offline Longarmx
« Reply #8 - Posted 2016-05-31 21:00:28 »

Where is this aforementioned "nice and polished" code?

Tell me why I should care about using your engine over my code which I already know, or another engine which has been used in hundreds of games.

Quote from WIP board rules (Yes, I know that this thread is under shared code):
Quote
N.B.: Threads plugging Game Engines are frowned upon and shipped to the Archived Projects board upon discovery by the kind mods. Show off and/or publish a game using your engine, not the engine itself!

Offline Hydroque

JGO Coder


Medals: 25
Exp: 5 years


I'm always inspiring a good time.


« Reply #9 - Posted 2016-05-31 22:22:43 »

Let me yet again clarify my reasoning for this. I'm not saying use my engine for your games. I'm saying check it out. Big difference between advertising it. Wanna check out out? I've yet to have anyone interested/ask. Over time I was going to ask a mod to delete this if nobody wanted to check it out.

You think I haven't been monitoring the chat? http://pastebin.java-gaming.org/c47d35366491fHere is a compilation <3
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline thedanisaur

JGO Knight


Medals: 59



« Reply #10 - Posted 2016-06-01 00:21:59 »

Longarmx: Like you said, we are in shared code, but there isn't even any code in sight.

Anyway, This thread is confusing and probably in the wrong place.

Quote
I'm saying check it out. Big difference between advertising it
"Hey check this out" <- all advertising ever.

Every village needs an idiot Cool
Offline Longarmx
« Reply #11 - Posted 2016-06-01 01:05:42 »

Please, just share your code. I care less about the reasons you shared it and just want to see what you have put together.

Offline ziozio
« Reply #12 - Posted 2016-06-01 04:56:39 »

@Hydroque

As you can see there are some people that don't like the site of game engines on this forum Smiley I under exactly where you are coming from, I think building an engine from scratch is a) a good learning exercise for the curious and those that want to learn how b) for those that like to create and want to be involved in everything and c) for those not worried that they will be the only people to use it. It looks like you fall in to all three of those which is great.

So now for some feedback :

- It looks like you are in the early stages of development because the core features you have are basic. Below is a list of features you can look to add if you haven't already (I'm no expert in engines neither but these are features I would want).
      - Lighting
      - Shadows
      - Text
      - Animation of GUI elements
      - Skeletal animation of 3D meshes
      - Particle System
      - Physics engine
      - Collission detection
      - Effects such as reflections / bloom etc
- Loading resources is key to making things easier for engine use so adding other loaders will be useful
- If you are using LWJGL you might want to upgrade to version 3
- As other people have already said, if you want us to look at your code then you need to link to it, if not then make it clear in the opening post that you just want advice on features
Offline SirSoltex

JGO Coder


Medals: 33
Exp: 1 year


Pixel-man, Programmer. Lover of the pancreas


« Reply #13 - Posted 2016-06-01 05:49:46 »

"make games, not engines" - pretty much every game developer ever.  Cheesy

but in all honesty good job! making something like that is not easy.

Are you humans? I don't know.
Offline Hydroque

JGO Coder


Medals: 25
Exp: 5 years


I'm always inspiring a good time.


« Reply #14 - Posted 2016-06-02 00:18:58 »

@Hydroque

As you can see there are some people that don't like the site of game engines on this forum Smiley I under exactly where you are coming from, I think building an engine from scratch is a) a good learning exercise for the curious and those that want to learn how b) for those that like to create and want to be involved in everything and c) for those not worried that they will be the only people to use it. It looks like you fall in to all three of those which is great.

So now for some feedback :

- It looks like you are in the early stages of development because the core features you have are basic. Below is a list of features you can look to add if you haven't already (I'm no expert in engines neither but these are features I would want).
      - Lighting
      - Shadows
      - Text
      - Animation of GUI elements
      - Skeletal animation of 3D meshes
      - Particle System
      - Physics engine
      - Collission detection
      - Effects such as reflections / bloom etc
- Loading resources is key to making things easier for engine use so adding other loaders will be useful
- If you are using LWJGL you might want to upgrade to version 3
- As other people have already said, if you want us to look at your code then you need to link to it, if not then make it clear in the opening post that you just want advice on features


Thank you for not instantly putting down an idea with half a mind. I thank you for the respect you have.
A lot of the things you've mentioned have to be implemented at the core with shaders, which honestly can't really be included because of how embedded they are supposed to be. Nonetheless, animation is a key thing that needs to be implemented.

You think I haven't been monitoring the chat? http://pastebin.java-gaming.org/c47d35366491fHere is a compilation <3
Offline theagentd
« Reply #15 - Posted 2016-06-10 16:56:58 »

Everything in that list except good lighting and postprocessing can be done without shaders. =P

Myomyomyo.
Offline Hydroque

JGO Coder


Medals: 25
Exp: 5 years


I'm always inspiring a good time.


« Reply #16 - Posted 2016-06-10 19:34:16 »

What? That doesn't sound stable. I've never heard of it being done outside of shaders.

You think I haven't been monitoring the chat? http://pastebin.java-gaming.org/c47d35366491fHere is a compilation <3
Offline theagentd
« Reply #17 - Posted 2016-06-10 20:38:57 »

What exactly are you referring to? Skeleton animation can be done as long as you can render a mesh if you do it on the CPU. Particle system also just requires being able to draw a mesh. The "worst" one is shadow mapping. Generating the shadow map is easy without shaders (just draw with different matrices), but using it is harder; you'll essentially have to use multiple texture coordinates and the legacy multitexturing system to do it and I wouldn't recommend it, but it's technically doable. Hell, even simple lighting with shadows is doable with legacy OpenGL. Shadow mapping predates shaders by quite a lot.

Myomyomyo.
Offline basil_

« JGO Bitwise Duke »


Medals: 418
Exp: 13 years



« Reply #18 - Posted 2016-06-10 21:11:22 »

fixed pipeline shadow mapping : http://www.paulsprojects.net/tutorials/smt/smt.html
Offline theagentd
« Reply #19 - Posted 2016-06-11 01:28:08 »

Seriously, I strongly recommend AGAINST coding this. It's a completely useless skill. Learning shaders to do this is significantly faster to learn and a better skill to have. All that shit is emulated with shaders by the driver internally anyway.

Myomyomyo.
Offline Hydroque

JGO Coder


Medals: 25
Exp: 5 years


I'm always inspiring a good time.


« Reply #20 - Posted 2016-06-11 04:34:00 »

Let's get one thing straight. Using gl calls in any fixed function way is not my interest. So I will not implement this shadow mapping, basil_.

I haven't learned lighting yet, except for simple normal calculations. Shadows is above me right now and I don't have the ability to work on my engine, as I need another fan to cool my PC and maybe more thermal paste.

When the time comes I'll be able to. I've been prematurely optimizing my code in the down time. Basically I organized everything and did some mipmap stuff from the other post. I also worked on the structure of classes to make things much easier. 

You think I haven't been monitoring the chat? http://pastebin.java-gaming.org/c47d35366491fHere is a compilation <3
Offline Hydroque

JGO Coder


Medals: 25
Exp: 5 years


I'm always inspiring a good time.


« Reply #21 - Posted 2016-06-18 03:20:35 »

Hi All

@Hydroque it is so great that you are making your game engine. folks here have great knowledge.

I am a game developer using jMonkeyEngine .
I just wanted to mention that, this game engine is really cool with lots of features for making great 3D games. But it lacks in some features and manpower. (Vertex Animation (for morph animations and SoftBody animation from Blender) , Deferred Rendering , LWJGL3(some features implemented already) , Vulkan API , ... )

It will be so great if guys here put some efforts on adding these capabilities to JME and extend this great engine. This engine needs some manpower.

It is open source and well documented (Java doc , wiki ,great forum ) and is the best java game engine.
please look here : http://jmonkeyengine.org/
https://jmonkeyengine.github.io/wiki/
https://github.com/jMonkeyEngine/jmonkeyengine

I think it will be the best to we all put our effort to make JME a great engine to stand against any other game engine out there like Unity , CryEngine, ...

Thanks a lot for reading and @Hydroque forgive me for hijacking your post.

Was your goal to advertise other engines from my engine that I built and trying to pose as a reference to people using vanilla OpenGL? Wow. Funny x)

Using a game engine and making a game with it is different from building one and making a game with it.

Quote
lacks in some features and manpower. (Vertex Animation (for morph animations and SoftBody animation from Blender) , Deferred Rendering , LWJGL3(some features implemented already) , Vulkan API , ... )

I assure you its full manpower. It is built off LWJGL2 and will support animation. As far as vulkan and lwjgl3 goes, it lies in lwjgl2.

This is also a very old snapshot. I've at least typed 1k lines of code after this, excluding spaces.

You think I haven't been monitoring the chat? http://pastebin.java-gaming.org/c47d35366491fHere is a compilation <3
Offline ShadedVertex
« Reply #22 - Posted 2016-06-18 04:30:03 »

I just wanted to mention that, this game engine is really cool with lots of features for making great 3D games. But it lacks in some features and manpower. (Vertex Animation (for morph animations and SoftBody animation from Blender) , Deferred Rendering , LWJGL3(some features implemented already) , Vulkan API , ... )

LWJGL 3 and Vulkan API aren't features. LWJGL is a library that rolls a whole bunch of other libraries/APIs into one, single library (which is good, because I like to have everything I need in one place). The Vulkan API is included in LWJGL 3. Also, most people think that using Vulkan instead of OpenGL for rendering is the only way to give their games/engines a massive performance boost. In fact, most people are only interested in Vulkan because of demonstrations on the Internet showing how Vulkan is waaaaaay faster than OpenGL. Vulkan's speed is the API's main "selling point".

OpenGL's speed can rival that of Vulkan's if it's used the right way. The Approaching Zero Driver Overhead (AZDO) techniques can be used to greatly reduce driver overhead. OP can consider using these techniques in his engine. Instead of using the usual glDrawElements, or glDrawArrays, you can use glMultiDrawElementsIndirect, which is faster (unless I'm very much mistaken).
Offline Ali

Innocent Bystander





« Reply #23 - Posted 2016-06-18 06:35:25 »

Was your goal to advertise other engines from my engine that I built and trying to pose as a reference to people using vanilla OpenGL? Wow. Funny x)

No, it was not my goal to advertise JME to game makers. I just want to say, you created a game engine and have gained lots of knowledge and experience while developing it.
So i thought you may be glad to contribute your experience with JME's developers and help to grow this engine.
I am a noob game developer and I apologies if my post bothered you.
Offline ShadedVertex
« Reply #24 - Posted 2016-06-18 07:32:33 »

No, it was not my goal to advertise JME to game makers. I just want to say, you created a game engine and have gained lots of knowledge and experience while developing it.
So i thought you may be glad to contribute your experience with JME's developers and help to grow this engine.
I am a noob game developer and I apologies if my post bothered you.

Don't sweat it Tongue Next time, if you want to talk about something that might be off-topic, please start another thread about whatever it is you want to talk about. Thank you Smiley
Offline Hydroque

JGO Coder


Medals: 25
Exp: 5 years


I'm always inspiring a good time.


« Reply #25 - Posted 2016-06-18 07:42:10 »

Was your goal to advertise other engines from my engine that I built and trying to pose as a reference to people using vanilla OpenGL? Wow. Funny x)

No, it was not my goal to advertise JME to game makers. I just want to say, you created a game engine and have gained lots of knowledge and experience while developing it.
So i thought you may be glad to contribute your experience with JME's developers and help to grow this engine.
I am a noob game developer and I apologies if my post bothered you.
Your post didn't cause any stress. It was largely questionable on what it meant. Each one of those engines are far superior to mine, but mine is plenty extendable and requests to be extended by beginners such as yourself.

You think I haven't been monitoring the chat? http://pastebin.java-gaming.org/c47d35366491fHere is a compilation <3
Offline theagentd
« Reply #26 - Posted 2016-06-18 10:29:09 »

His point is that it'd be better for the community in general if we all just helped outwith jME instead of creating our own engines.

Myomyomyo.
Offline Hydroque

JGO Coder


Medals: 25
Exp: 5 years


I'm always inspiring a good time.


« Reply #27 - Posted 2016-06-18 14:54:47 »

Hey come on. Creating your own game engine for a game is not only rewarding but it's yours and in your style. It's good for the community to open source your stuff. Someone will come along and compile stuff like they always do.

You think I haven't been monitoring the chat? http://pastebin.java-gaming.org/c47d35366491fHere is a compilation <3
Offline Opiop
« Reply #28 - Posted 2016-06-18 15:33:47 »

Er... no. It's good for you and that's pretty much it. If you want anyone to use your "engine" then you need to put as much work and time into it as the LibGDX team does, for example. And you need to innovate instead of redoing what everyone else does. Why would anyone switch from a more mature framework like LibGDX for someone else's? Unless you innovate and provide solutions to problems (multi-platform one time compile like LibGDX), no one is going to bother.
Offline Hydroque

JGO Coder


Medals: 25
Exp: 5 years


I'm always inspiring a good time.


« Reply #29 - Posted 2016-06-18 16:03:31 »

I don't think you realize that you do innovate. And the things you create are of use to others. If we closed source everything then nobody knows what the hell is going on. I'm making a specific texture format that is minimalist uncompressed created from a 32/24 bit png. I'm creating a heightmap file format because... people use textures for height which is grossly unflexible and totally unnecessary. Loading is much faster too. Each game engine can benefit off other engines mechanics and open source is the way to go. I'm taking about making your game engine. Reinnovating people's way is a good way to learn how things interact and do. You become better. Anyone who is checking out it game engine learns. jME is seasoned, yes, and it still can be extended. Not to mention it's a higher level that isn't that flexible when it comes to changing how features role out.

You think I haven't been monitoring the chat? http://pastebin.java-gaming.org/c47d35366491fHere is a compilation <3
Pages: [1] 2
  ignore  |  Print  
 
 

 
Riven (76 views)
2019-09-04 15:33:17

hadezbladez (4299 views)
2018-11-16 13:46:03

hadezbladez (1539 views)
2018-11-16 13:41:33

hadezbladez (4421 views)
2018-11-16 13:35:35

hadezbladez (859 views)
2018-11-16 13:32:03

EgonOlsen (4149 views)
2018-06-10 19:43:48

EgonOlsen (4834 views)
2018-06-10 19:43:44

EgonOlsen (2799 views)
2018-06-10 19:43:20

DesertCoockie (3704 views)
2018-05-13 18:23:11

nelsongames (3979 views)
2018-04-24 18:15:36
Java Gaming Resources
by philfrei
2019-05-14 16:15:13

Deployment and Packaging
by philfrei
2019-05-08 15:15:36

Deployment and Packaging
by philfrei
2019-05-08 15:13:34

Deployment and Packaging
by philfrei
2019-02-17 20:25:53

Deployment and Packaging
by mudlee
2018-08-22 18:09:50

Java Gaming Resources
by gouessej
2018-08-22 08:19:41

Deployment and Packaging
by gouessej
2018-08-22 08:04:08

Deployment and Packaging
by gouessej
2018-08-22 08:03:45
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!