Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

Feedback for my game engine?

A topic by stene.xyz created Jul 20, 2020 Views: 268 Replies: 3
Viewing posts 1 to 2
(+6)

I've spent a little while working on my own small engine in Java. Right now it is in beta, and has no real graphical tools (I prefer to do everything in code) but it does have graphics, collision, etc.

My project page is at https://jhonnystene.itch.io/infinity and the latest source code is at https://github.com/jhonnystene/Infinity.

I'd like to know what features I need to add before the first "stable" release (a better UI framework, post-processing, sound, and multiplayer are already on that list) as well as how to improve my (rather barren) project page.

Moderator(+1)

Hi jhonnystene,

I took a quick look at your engine, and got some feedback. Some of it based on your README:

At the end of doTick(), you need to put window.finishedDrawing = true; to tell the renderer that the frame is ready.

  • It would be better to make a function to do this functionality, something like “readyToRedraw()”, which internally does the same functionality. The reason for this being, in the future you might need to add some extra functionality, and it will automate to all games made with it. I suspect this will happen when physics are added (from what I can see you don’t have physics yet), as they sometimes run on a different rate than the rest of the game.

  • I noticed in your World.java file, you seem to assume a World will always have items and pickups. Wouldn’t it be better to let each World individually handle that? Or better yet create a new class that handles items and pickups, and let each user add that to their world or not.

  • I also noticed on the same file, each world defines a backdrop with a constant width and height to 4096 which is always drawn on the screen. Is this intentional? That seems quite heavy, especially for low-end devices with small screen. It would be better to let each world decide if it needs a backdrop or not.

  • I like the organization of the docs, but it might be useful to also include the API of each object. For example on the Sprite documentation, it would be useful to have the functions needed to create a sprite, load an image into it, and interact with it. Users using your engine won’t be looking at the source code for that (most likely).

  • Unless I’ve missed it, it would be nice to have documentation which is complete instead of separated in files. I’ve used in the past texinfo which can compile to html, and be uploaded on a site.

This is very easy. If you’re using Eclipse or IntelliJ (which you really should be!) you just need to drag the “net” folder into the source folder for your game and import whatever packages you need.

  • Assuming you want your engine to reach as many people as possible, this will be an obstacle. Some people like to use different tools and might still be interested in your engine.

Apart from these, I think the best way to find out what you engine needs, is to start making games with it. While making the game you might come up with ideas like “This took me a while to do, I want to improve it so its faster next time”, or “This object is too complicated to use, it might be better simplified”.

I hope these suggestions might help. I wouldn’t say these are needed before the first stable release, it’s difficult to define what a stable release is. If you mean a version that other people can use, the things that you definitely need are, clear documentation of how to use your engine, and make your engine ridiculously easy to use. The rest are just features that can be slowly added.

Good luck with your engine, hope it becomes big. Cheers from a fellow engine maker :)

(+1)

The window.finishedDrawing = true part isn't actually required - I forgot to remove it from the docs before release. 

Handling items and pickups seperately is something I have planned, probably going to happen around v1.2b since 1.1b is mainly graphics upgrades. 

The 4096x4096 backdrop thing is something I also plan to fix. Worlds don't actually need to have a backdrop, but drawing a black screen of that size does have performance impacts (for some reason only on Windows, on Linux it is perfectly fine). 

I am also rewriting all of the docs for v1.1b and will certainly include the API. I'll also look into texinfo. 

The engine works fine with other tools, but I only included Eclipse and IntelliJ in the docs because they are what I know how to use. I'll be sure to specify that more clearly in the docs.

I have actually been making games with my engine - I made the engine because I had to make a game for my Computer Science project.

Thank you for the reply.

Moderator(+1)

I think in your engine’s page you should proudly show all games you’ve made with that engine. Viewers will also see what the engine is capable of.

Good job with the project! Curious to see what direction it will go.