SJGL (Now on GitHub!)

[quote]arrogant @$$3$."? Excuse me? Only one person has even made a comment that could be considered out of line. You guys need to stop with this idea of being the hero and jumping on the “back OP up” bandwagon.

CopyableCougar4
[/quote]
Awhhh Snnnaappppp, We got a bad@$$ over here.

Awhhh Snnnaappppp, We got a bad@$$ over here.
[/quote]
I’m just going to stop replying, you’re trying to start something and I will not be a part of it.

CopyableCougar4

Maybe you shouldn’t put someone down, Just a good tip ok!

I’m not looking for gratitude, I’m looking for experience :slight_smile:

Drama aside, try making a game with the library and find out what it needs.

  • Jev

It is times like this where I feel like singing:
“I never meant to start a war!” - Miley Cyrus, 2013

Jesus this thread is full of so much cringe. All of you need to take a step back and let the OP figure it out, we have given him the advice. There are no sides, this is a thread about a small library that for some reason spiraled into insulting each other and useless comments. Don’t take over threads with your silly bantering, this is a place to discuss the library. Maturity is a nice quality to have sometimes.

I always wonder… OP stands for over powered… What does it stand for here? I can never tell…

Original poster as much as i know, so it is the one, who started the Thread.

There are a lot of criticisms here, so I would like to clear them up and make a summary of the thread. (I don’t want to offend anyone) So here are the very important things you need to take care of, DarkCart.

Project Hosting

DarkCart, you are offering everything in the form of downloads, but the main thing is nobody is going to download things without knowing what it can do. The best thing you can do is to host your project online (GitHub is better in that case) and also show some screenshots what your library is capable of.

Hosting on the internet has it’s benefits, users need not download to look at the stuff, they can browse the code online and save a lot of time themselves. It also allows people to contribute in return, or notify you of any issues or bugs, and you can fix them asap. I recommend you to host your library on GitHub to prevent these criticisms.

Naming Conventions

You named your methods in a weird manner which no one really expects. Your methods start with [icode]gl[/icode] in their names, which confuses many users that your library uses OpenGL, which is not the case. It’s not going to benefit you, as this may cause a reduction in the number of users that are willing to try your library.

Another example is you named your color class as [icode]ColorValue[/icode] while many people prefer [icode]Color[/icode] as the name. Using non-standard conventions will do nothing but scare people away. I recommend you to change these names to the correct ones to avoid the confusion of your users.

The Tools you Use

Even the tools you use does matter for your users. You are using Java2D, which is not the right tool for this job. Java2D is not designed for performance efficient graphics programming, and especially not with games in mind. Since yours is a game library, you should really start using the recommended libraries, such as OpenGL. I recommend learning OpenGL and LWJGL (again I don’t want to start wars, but I do prefer LWJGL) and make your library use it.

Not only that OpenGL allows you to gain good performance and frames per second, it will also give you the ability to apply much transformations to your entities using shaders and GLSL. By the way, I’m not against Java2D, nor we hate it, we just say that it is not the right tool for games programming.

Proper Game Loop

As seen in your [icode]ImageTest[/icode] example, your game loop is the not the right one, and is an example of a bad game loop. You might want to look at the game loops article written by EliDelventhal in the articles section of this forum. Or you can also read the article by Koen Witters, namely deWitter’s Game Loops on the KoonsoloGames website. That is more necessary for a perfect game loop.

And again, the game loop should be built-into the [icode]BasicGame[/icode] class, and you should also allow the user to switch between variable frame times or fixed frame times. A perfect library should give those.

Proper Demos

You need to provide proper demos to show off what your library is capable of. ImageTest isn’t one, since users need to know how to make a game with your library, just showing them on how to draw an image wouldn’t suffice. The recommendation is to make as many games with this as you can (not only limited to tile based ones) and post the screenshots here. It is also important to post the code in a folder alongside with your library on github or whatever hosting you use.

Aside from these things, this entire thread is filled with arguments, they do good in the end, but I think there should not be these many criticisms arguments on a project page. Anyways, DarkCart, these are the things that you need to take care of. I wish you good luck with your game library.

Also “Operator” sometimes, mostly in IRC. Which is kinda analogous.

Then, why not making at least one game with your library as kpars and me suggested? This is the best way to find which features are missing and a good solution to increase your experience. It would put you into the same situation than a developer who would use your library.

SJGL is now on GitHub! Woo-hoo! Link is in the OP!

Good. I have a few suggestions:

Good luck

Here we go:
The first real game created in SJGL… Find The Cake!

“Find The Cake” is a game where you play as a pixel art version of Steve, the main Minecraft character. Controlled by you, he walks around, trying to find the cake, only to discover… it’s a lie! Right as he touches the cake, it teleports to another position, much like a Enderman. How much cake can you get?

Screenshot:

As I promised, created with SJGL.

Download: here

Well, your example doesn’t work on OS X.

Console output here.


$ java -jar FindTheCake.jar
Creating Window Find The Cake
Size = 640x480
Resizable = false
Component null added to window.
$

Could you try running the program again? Sometimes that helps. Otherwise, I don’t know.

Is it a joke? I ran this more than 5 times and the same output.

No, it is by no means a joke. Works just fine on my computer (Windows).

I always seem to find problems on Mac… What I did was add ALOT more debugging info… Even info which doesn’t really need to be there and then send them the new version…