Red Game 2D Engine (redone!)

Just a few extra notes here…

I have renamed the ‘Sprite’ class to ‘Entity’ (Thx to klaus for the idea) but the new version isn’t on github yet…

I am going to finish the jBox2D implementation (still have to add joints), add controller support and direct drawing and my engine should be finished (unless I decide to add better anti-aliasing support)…

I was looking at the three points by saucymeatman and all of them have been discussed except the one about having world:
I made the ‘World’ class static because that is also the Display for LWJGL and the dynamics World for jBox2D…

When LWJGL updates I may add the ability of having multiple worlds (or windows)…

But what else am I supposed to use other than reflection?
Do count in the fact that I want the ability for other people to create events and it seems simple to just have the events as methods in the Entity object itself…

There isn’t any problems with runtime explosions because if it cannot find the method it will just ignore it and continue on… Then people can check if that method is being called (if it is not working) by using ‘System.out.println()’ at the start of the method…

Also, there isn’t actually any lag so that isn’t a problem…

Finally, can we stop talking about the ‘terminology’? I have changed the name from sprite to entity…

Instead of Reflection for your events, you could make your own customizable event listener

But then others cannot ‘easily’ make events and also I just find it easy having event listeners as methods inside the entity…

In my mind, if there isn’t any problems then there is no point arguing about it or changing it… And I find no problems with reflection…

https://raw.githubusercontent.com/matanui159/Red-Game-2D-Engine/master/logo.png

This is my redo of my game engine because my old one was quite horrible… I have no pictures to show except the one above… But I will get straight to that… The same is with a demo (haven’t got [a proper] one yet, but I will be working on it)…

But I have the source here: https://github.com/matanui159/Red-Game-2D-Engine
And I have the current features here: https://github.com/matanui159/Red-Game-2D-Engine/blob/master/README.md#features

Sorry it is not much… My game engine ATM is only a simple renderer, entity system, sound system and input system…

Any response positive would be great… any response negative will be helpful…
If you find any problems, I will try to fix them as best as possible…

Thx in advance…

EDIT: does anybody know the preview picture size so I can fix up the logo?

Wouldn’t this be considered spam? What was wrong with the previous “Engine”, couldn’t you have just changed the picture (if that’s what you did here)?

Well… because this one was done from scratch and the last one already had alot of talk about how horrible it was I thought it would’ve been better to create a new topic… Anyways:

[quote]Each new publication by a member will discard the previous publication of that member
[/quote]
That is from the “WIP Publication Reel”…

Don’t get bothered by any criticism that may seem harsh. Your tech demo looks great based off of what I’ve seen.

Yeah, and that’s separate from the WIP board rules -

You haven’t changed anything. It’s not a new project.

I have changed the original post and it seems like my old one was already deleted…

But now can you actually have I look at it?

? Nothing has been deleted.

I can’t find it tho…

I checked my projects on my profile and only found this topic and my old game engine’s demo… (which I should delete)

I merged the two topics if you didn’t notice…

Oh sorry… didn’t notice…

  • Why does Entity inherit Point ? It might have a point for its position but is not one.
  • Keep the Point class lean: time based follow stuff does not belong there.
  • To reuse objects you need a proper object pool. Using a single static member instead is a good source for hard to track bugs.
  • a Numbers class from a math package should not mess with camera stuff. Limiting dependencies is very important
  • update should rather be in Timer instead Time
  • Whats the benefit from your Iterator class compared to the built-in ?
  • The entity inherits point so it has all the vector maths as well and can also be used for things like getting angles and distances between points
  • The time based stuff is for the entity, but if you don’t want to use it, there is a option not to… I just have it so the developer (which the current target is beginners instead of more advanced people) doesn’t have to worry about how to move the entity at the same speed with different frame-rates
  • Whats this thing about the reuse objects and object pool?
  • I didn’t know where else to put ‘isOutsideCamera()’ and it seemed to match with ‘isOutside()’
  • It is in both… The time class is for tracking delta and FPS is is updated by the World… The timer class is for tracking actual time and is updated by the user.
  • 2 things:
    • I can remove elements while iterating
    • because I had a huge memory problem last time I created my own iterator that I could restart instead of creating a new one every time

I think you might misunderstand the point of inheritance, inheritance is used to extend the behavior of a particular class. What you are doing with entity, is extending point just to have easy access to some methods. Its just as easy (as has been said) to either have an instance of point in your class or to have a static maths class that you can use anywhere

I will actually be updating it…

  • entity will have position instead of extending point… Cause when I think about it, it is kinda better
  • isOutsideCamera will be put inside the entity class
  • a few major bug fixes

Btw, what do u think of the logo? And what is the thumbnail size so I can get it properly fitting?

Red Game 2D Updated! (finally)

Changes:

  • Fixed major bug in camera
  • Entity now has position variable and doesn’t extend point anymore (as requested)
  • updated for most recent LWJGL release
  • added to Javadoc (more javadoc should be added next commit)
  • added MouseEvent.getType()
  • improved KeyboardController
  • improved Canvas alot (now supports shapes and is easier to draw
    images)
  • Renamed ‘reader’ to ‘codec’ (still don’t know what Codec means tho…)
  • Added demo (I will release after I make some sort of Red Game Launcher [it isn’t that tanks one, but it is VERY similar])

Again, any positive feedback will be great, any negative feedback will be helpfull…

A new version out!

  • created exporter
  • bug fixes and improvements to sound library

Also, I have a little demo:

Controls:
MOVE: arrows/left thumbstick
SHOOT: space/right trigger

Notes:

  • does not work on play station controllers yet :point:

Although, I don’t think many people follow this…