Will it have physics? If so, Box2D or custom?Java2D or a opengl port? If openGL, which port?

Supporting all platforms and all game types is ambitious.

Yes, physics are a must for both 2d and 3d, and I might just use Box2d.

Java2d will be supported via a custom game environment, but natively, OpenGL all the way. Because the 3d portion of the engine uses it, I'll use the programmable pipeline. It's more difficult to work with, but it beats writing support for two different OpenGL versions.

This is just a what is expected to come now. This isn't functional yet. When it is, it will do way more than is expected. It has a great potential! I feel this engine will go far with game development. Good job, Elusivehawk.

My advice: Don't wrap for the sake of wrapping.Provide some new functionality. Don't just give the user a whole new load of classes to use that simply call a method in some other library.

Secondly, don't duplicate functionality that already exists. Some of your classes could easily be replaced with already existing ones, even within the libraries which you're using, yet for some reason you're providing half-baked implementations. Sometimes it's nice to have simplicity of course, but if something exists that perfectly does your job, why go and make something that doesn't and use that instead?

With those two in mind, the following is a bad idea:

Quote

Writing a JBullet port; Will mostly consist of refactoring it to use Caelum's math package

Finally, if you're expecting other people to use your code, stick to standards. Your

SimpleList

does not fulfill the requirements of the

List

interface. Note the following:

Quote

E remove(int index)

Removes the element at the specified position in this list (optional operation). Shifts any subsequent elements to the left (subtracts one from their indices). Returns the element that was removed from the list.

Replacing it with null is not removing.

Other than those few things, this looks decent. I went into the code expecting some newbie making a library for things they don't even understand, but was surprised to find you for the most part know what you're doing. (No offense, but when someone says they're making a library that supports 'all types of game', that turns on warning bells)

Secondly, don't duplicate functionality that already exists. Some of your classes could easily be replaced with already existing ones, even within the libraries which you're using, yet for some reason you're providing half-baked implementations. Sometimes it's nice to have simplicity of course, but if something exists that perfectly does your job, why go and make something that doesn't and use that instead?

The LWJGL package is just a game environment, and as such, is meant to be compartmentalized from the rest of the engine. Also, having my own Matrix and Vector classes enables me to implement features into them on a need-to basis, not to mention LWJGL's implementations can't be iterated through.

Writing a JBullet port; Will mostly consist of refactoring it to use Caelum's math package

The reason why I'll have my port of JBullet use my math package, aside from including it in the above Vector features, is because I encountered a good deal of errors (~1200, IIRC) the last time I gave porting it a shot not that that long ago, and a fair amount of said errors were caused by a lack of a Vector3f class.

Finally, if you're expecting other people to use your code, stick to standards. Your

SimpleList

does not fulfill the requirements of the

List

interface. Note the following:

Quote

E remove(int index)

Removes the element at the specified position in this list (optional operation). Shifts any subsequent elements to the left (subtracts one from their indices). Returns the element that was removed from the list.

Replacing it with null is not removing.

Now, things like SimpleList have a flaky implementation, I won't bother denying it; It's just that I spend my time in some areas for some time, then move on; As a result, some things have been given a "bandage" implementation. I'll fix SimpleList in particular ASAP.

Other than those few things, this looks decent. I went into the code expecting some newbie making a library for things they don't even understand, but was surprised to find you for the most part know what you're doing. (No offense, but when someone says they're making a library that supports 'all types of game', that turns on warning bells)

None taken; I've spent a lot of time working on this engine, so it's good to know that I did it remotely correct.

With that said, thank you for taking the time to reply; It means a lot to me.

Now, again, some of this could be mitigated by using pooling, but not only would that be completely inappropriate for certain Caelum Vector features (Looking at you, IVectorListener), but it'll also be difficult to manage given Vector's type casting.EDIT: I took out that stupid type casting, but I'm still not pooling my vectors just yet.

Also, it seems that JBullet out of the box is somewhat reliant on LWJGL, which probably won't end well if you're using Android.

In part, I did make this to learn more about what goes into programming a game; But personally, I don't really care that much for LibGDX.

Ok, that's what I meant by "pedagogical purposes" but don't expect tons of developers will use your engine especially if it provides no new feature and if it is less documented than existing engines, that's why I talked about LibGDX. When I started 3D in Java, I used a 3D engine written by an artist (d3caster) and as far as I know, his source code was under GPL and I was the only guy who used his engine for a public project. Even Ardor3D is used only by at most tens of developers.

I looked at your source code, I agree with most HeroesGraveDev's remarks and for the moment, there aren't a lot of comments.

Ok, that's what I meant by "pedagogical purposes" but don't expect tons of developers will use your engine especially if it provides no new feature and if it is less documented than existing engines, that's why I talked about LibGDX. When I started 3D in Java, I used a 3D engine written by an artist (d3caster) and as far as I know, his source code was under GPL and I was the only guy who used his engine for a public project. Even Ardor3D is used only by at most tens of developers.

I looked at your source code, I agree with most HeroesGraveDev's remarks and for the moment, there aren't a lot of comments.

What do you mean exactly? Other famous engines have a lot more very experienced contributors, especially JMonkeyEngine and LibGDX, don't expect to succeed in competing with them alone especially if you don't have a lot of experience but you can and you will probably learn tons of things by writing your own engine.

Well, after looking at the relevant code, and OpenGL's docs, I question how on Earth that constant got there in the first place; I've already pushed a commit to fix it, and I thank you for bringing it to light.

This engine has so much to come and it is really amazing. It may not be usable now but when it is, it will be offering a lot. I can see you have put a lot of time making this day after day to make a new type of engine that work well and easy to use. This game engine is just the beginning to an all new gaming experience. Elusivehawk has put crazy amounts of time into this as far as I can tell. He is doing a wonderful job. Great job Elusivehawk!

...I won't even bother asking about the above, but since I'm already here: Assets are somewhat finished. However, I will need to restructure how game entities are rendered before finalizing the materials system, so if you have a request in that regard, now is the time to ask.

Not to say this engine is unworthy of praise, I think its really cool (although remarkably ambitious). Its disappointing to see replies that advise Elusive to not stay optimistic that his engine one day might be used by many developers.

I had no intention of belittling your engine Elusive, it just almost seems like Mining over there knows you or something I mean no offense but we both know your engine isn't at all complete yet, the praise just seemed a little much...

Engine without game/s that drives it development and test it functionality/usability/flexibility never hit the goal. Writing engines is fun and I even do that as living but I would never create yet another open source over general engine.

I had no intention of belittling your engine Elusive, it just almost seems like Mining over there knows you or something I mean no offense but we both know your engine isn't at all complete yet, the praise just seemed a little much...

Didn't think you were, and I do know him; He just likes to "help". Although, to be fair, sometimes he is genuinely helpful.

Engine without game/s that drives it development and test it functionality/usability/flexibility never hit the goal. Writing engines is fun and I even do that as living but I would never create yet another open source over general engine.

Well, once the core features are up and usable (Like some form of rendering, physics, sound, etc.), I'll probably start developing a game to do just that. For now though, IMHO, creating a game for this engine would only halt progress, unless it's rather small.

Engine without game/s that drives it development and test it functionality/usability/flexibility never hit the goal.

That was the intention of my question.You don't build no (good) frameworks, libraries or game engines without actual use cases. Plural is important here. It does not hinder progress, but does the opposite.Anyway, have fun.

Just a quick update: I've implemented material support, written my own JSON parser, broke up the launch process in order to comply with Android's activity lifecycle, and I will begin writing a series of tutorials soon.

Also, what should I work on next? I know I have a TODO list, but I'm going to re-prioritize it, simply because you can't have much of a game without sound, or physics, or even a little HUD telling you, "You're dying!"

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