Ive been trying to make a 2d game engine like GameMaker or Construct 2 and i was just wondering what features would be best implemented into my engine. I already have planned:

Asset ManagementScene editor2d Sound enginedynamic scripting plugins for extended engine contentdynamic parallaxing[Edit]collision/physicsIf there is anything else that i should plan on adding over the years, please tell me.

MAYBE do that later, if I was you I would (firstly) focus more on important things like scripting and ONLINE, and hold your engine very simple, not so detailed as gamemaker, so you have more a 'scripting-engine' (where everyone can script his own shaders, as they are all different for different games). You can add some rare stuff for 2d engines like built in database communication, physics and so on.

So the user of your engine has not to worry about all that kind of stuff, but only has to worry about what he wants to do with his data...

If you're starting out I suggest you start doing simple games like platformers, tiled games, tetris, space shooters etc instead of jumping straight into making a "Game Engine". There're many reasons for this.

Firstly, it's not a great way to learn the basics of making a game. Secondly, any game engine you make in the beginning will be immediately outdated (read: crap). Thirdly, there already are good, up to date "Game Engines" out there. Fourthly, this is a huge time investment with little to no gain and will leave you with practically nothing to show for it.

Make ~5 simple games that take less than 20 hours to make each, learn a lot in the process, have 5 simple games to show for it and ready to move on to other things by the time you've done 5% of the "Game Engine", learned almost nothing, nobody will ever use it for anything not even yourself and be left empty handed.

If you're starting out I suggest you start doing simple games like platformers, tiled games, tetris, space shooters etc instead of jumping straight into making a "Game Engine". There're many reasons for this.

Firstly, it's not a great way to learn the basics of making a game. Secondly, any game engine you make in the beginning will be immediately outdated (read: crap). Thirdly, there already are good, up to date "Game Engines" out there. Fourthly, this is a huge time investment with little to no gain and will leave you with practically nothing to show for it.

Make ~5 simple games that take less than 20 hours to make each, learn a lot in the process, have 5 simple games to show for it and ready to move on to other things by the time you've done 5% of the "Game Engine", learned almost nothing, nobody will ever use it for anything not even yourself and be left empty handed.

my 2 cents.

If you're just getting started with programming games or you haven't worked on large projects before, you're right, you should avoid something like a game engine. The reason is because a game engine's code base grows very large (hopefully) very quickly - and it is then when your OO programming skills and code organization skills are put to the test. If you find yourself constantly rewriting implementations then you probably don't want to get started with writing a game engine because those implementations take a lot of work to write.

That said, I wouldn't argue that it is ever a waste of time to program a game engine. You learn lots of different things during the process.

There really aren't a lot of game engine out for Java - I mean you have a few that are hacked up dropped in a repository and forgotten about with zero proper documentation or support - and a few that are well supported but nothing compared to the C++\C\.Net market.

I.e, the reason I chose to write a Java isometric game engine is simply because there aren't any out there that are worth using over your own implementation (there are a few that look promising - but not much.) There is uIso - but that's far from a game engine, than there was another, jIso - which had a complete crap code base, than there was "Java Isometric Engine" last talked about in 2008 lacking some essential features like scripting, map editor, item or quest system etc...

There really aren't many purely java based game engines out there at all compared to other programming communities... I chose java to deploy something via an applet (I am actually much more adapt at C# .Net, C & C++ - but I do feel like I know my way a bit around Java) so I feel like using libraries with tons of native dependencies kind of defeats my entire purpose to it.

For one, I want the feeling of accomplishment and two I want to be able to have a totally personalized engine to fit my habits

I would assume from this comment that the engine is more for you as opposed to a "one size fits all" type of engine such as Unity. If that's the case then the answer is simple: write the features that you find you need as you need them. You are the one who knows what your habits are, and there's little use in investing time and effort into an engine feature that you think you might possibly need in the future when that effort would be much better utilized implementing a feature that you know you need now.

As a general rule, the more general you make your engine, the less useful it becomes to your specific situation. Just my $0.02.

Arthur: Are all men from the future loud-mouthed braggarts?Ash: Nope. Just me baby...Just me.

I disagree with the lot that say you shouldn't do this. The way you are approaching it is completely wrong, though.

You won't know what your personal engine should have until you make a game, and you realize the features or aspects that you need.My suggestion is to make a game, and in the process, make the more game-common parts as modular as possible so that they can be used on their own in any game. If you do this again and again over time, you'll obtain a collection of tools that are proven useful, because you've already used them in at least one project.

To get started, begin with a very basic core framework(Make a container, a gameloop, a way to display your graphics). And then with that, build a game as I mentioned before, and let your engine build as a result of realizing the different things you need from the games you are working on.

And besides that, doing it this way allows you to work on games more than an engine. I promise you, building an engine is not fun on its own.

And at the end of the day, if all you wanted to do was build an engine, I still say go for it. Why people would tell you not to, I have no idea. Yes, with your approach, you will likely end up with a very poorly functioning engine (if you even finished it in some aspect), BUT, experience is experience no matter what the final product is. Researching and building your own engine is a great way to learn how they are generally built, which gives you a better understanding of how to work with them.

First my age doesn't really matter. Second I simply despise having to create a new window and game class every time I start a game. I just want a simple enviorment to be able to quickly use

Pretty soon you'll be despising have to start up your IDE every time you want to do some programming. It doesn't help you when the most trivial of things start to become a bother you know, programming is filled with repetitive and trivial matters. They're necessary evils.

You likely don't have to "create" such classes each and every time, you copy/paste them.

First my age doesn't really matter. Second I simply despise having to create a new window and game class every time I start a game. I just want a simple enviorment to be able to quickly use

First of all, if your age didn't matter you wouldn't have posted a comment on it. Second, if you're too lazy to copy+paste a window and game class you certainly won't have the motivation to complete an entire engine.

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