Advertisement

Which Software Game Engine to use

Started by November 14, 2015 01:51 AM
6 comments, last by PrayerBox 9 years, 1 month ago

Greetings. I am looking for some software / game engine 2D that I can use with C++ that will allow me to do the following:

  • Be able to load images of various layers of different clipart with transparent backgrounds to create one uniform image.
  • These images will need to be placed on specific locations on the screen; especially in order to ensure that they line up correctly on top of each other
  • Be able to have a great database capabilities, so that I can load thousands of separate images and be able to code which images should be generated based on a user’s request for one uniform image
  • Have some type of GUI interface for users to enter the type of image they want to create
  • I need a program with built in libraries that will allow me to create 2-D environments to place the pictures they create into. For example some images I my want a black background; others, like if person selects bird I may want a cloud background.
  • Be able to quickly handle thousands of data, and based on a user’s input a specific image will be generate to locate a group of clip art images based on the specification they requested
  • I am not an expert at C++ programmer, but developed a few little games using IRRLICHT game engine; so I do not mind coding, it is just the GUI and the libraries are very nice to have; I do not want to code for things that could be standardized for me
  • People should be able to be able to point to a place on the image and words should describe what is there.
  • I anticipate distributing this product so I would want to have complete licensing rights
  • I could spend up to $500.00 on software / engine program.
  • I am not in need to use a game engine necessarily. Anything that can do 2d is fine, or handle images
  • Thank you so much!

I know this my not be what you typically help people with, but if you can point me in the direction of a software package / game engine that could help I would be very appreciative.

Your topic was moved to the for beginners sub-forum, look for it there.

edit - I thought it was moved there but you seemed to have removed the meat of that post.


Be able to have a great database capabilities, so that I can load thousands of separate images and be able to code which images should be generated based on a user’s request for one uniform image
I don't think any game engine I've come across has database capabilities, you'll most likely need to add that yourself. You might want to expand on your description of what you need in this regards so you can get better help.

-potential energy is easily made kinetic-

Advertisement

Oh I thought I posted it in the beginners forum by accident, that is why I reposted it here again. I apologize. I was trying to delete it completely, but could only delete the bulk "meat" of the post. Thank you for your reply.

It belongs in the For Beginners forum because that's where all "which engine" questions go. Please do not delete content.

-- Tom Sloper -- sloperama.com

Welcome to the forums! We frequently offer engine and tool advice. Most often, we have to explain what you probably already know: that there's no engine that perfectly does everything for you. It still involves work on your part to custom the engine's generic features into your game's specific features. That's the nature of a programmer's work. smile.png

Be able to load images of various layers of different clipart with transparent backgrounds to create one uniform image.

Why have this specific weird unusual request, when you can just load as many images with transparent backgrounds as you want, and draw them over each other or draw them into a new image?

Why look specifically for an engine that happens to do some weird crazy feature that you can easily write yourself?

These images will need to be placed on specific locations on the screen; especially in order to ensure that they line up correctly on top of each other

That's the programmer's responsibility: You can use any graphical API to draw images.
It's your responsibility to place them at 'specific locations' in the 'order' you want, and make sure they 'line up correctly'.

That's just called "drawing an image". Any graphical API can draw an image

If you want to draw images A, B, and C... then you order them how you want and draw them.


Draw(imageA, sameLocation);
Draw(imageB, sameLocation);
Draw(imageC, sameLocation);

You don't need special engine for that. That's the work that you, as a programmer, do.

An engine is unlikely to provide:


DrawMultipleImagesOverTheSameLocation(imageA, imageB, imageC, sameLocation);

I'd hate it if an engine tried to do that for me. It'd immediately tell me that the engine is trying to micromanage too much, and I'd spend half my effort fighting against the engine, to get it to do what I want, instead of what the engine thinks I might want. sad.png

Be able to have a great database capabilities,

Very very very few games use databases - they are mostly only used by online games, and only on the server-side of things.
Sometimes we hear a term or phrase, and we think that's what we need, because it sounds impressive, but we really don't need it.
Do you know what a database is, or when and why they are used?

so that I can load thousands of separate images and be able to code which images should be generated based on a user’s request for one uniform image

How large are these images? Why do you have them loaded all at once? Are every image on-screen at the same time? huh.png

Unless the images are very large, and you need every of them loaded into RAM at the exact same time, you won't have a problem - and databases add complexity to solve a problem you probably don't actually have.

I need a program with built in libraries

In this context, what is a library, and why do you need it 'built in'?

that will allow me to create 2-D environments to place the pictures they create into.

That's up to the programmer to write. All that's required is for the API to provide the ability to draw images and get mouse input, and the programmer writes the code to place images where the mouse was clicked.

For example some images I my want a black background; others, like if person selects bird I may want a cloud background.

That's up to the programmer to write.

People should be able to be able to point to a place on the image and words should describe what is there.

That's something programmers write. That's game-specific logic.

Be able to quickly handle thousands of data,

What is "data"? That's a rather generic term. happy.png

It's like saying, "I need to do thousands of 'things' involving 'stuff'".
"I need to do thousands of 'data' involving 'handling'" is the exact same meaninglessness when you are communicating to someone who doesn't know your project.
It makes sense to you, because you already know what you actually mean, but to me it's just frobbing a particularly insipid wodge. laugh.png

and based on a user’s input a specific image will be generate to locate a group of clip art images based on the specification they requested

The API provides the method of getting the input, and the programmer writes the code to take that input and generate the images.

I am not an expert at C++ programmer, but developed a few little games using IRRLICHT game engine; so I do not mind coding, it is just the GUI and the libraries are very nice to have; I do not want to code for things that could be standardized for me

If you're looking for standard GUI desktop interfaces, Qt provides those. Qt is a huge set of libraries with alot of GUI-related (and non-GUI) features and tools.

But if you're making a game, you probably want something like SFML (which doesn't have any GUI). SFML provides you with the ability to create the window, get input, load images, and draw them on-screen. You'll need to pair it up with something to draw the GUI. Maybe SFGUI, though I've never used SFGUI myself.

This may require alot more work on your part than you're used to. sad.png
You're going from an engine (Irrilict) which tries to do as much as it can for you, but is targeted at a very specific and narrow category of programs, to a generic API which you yourself will have to build ontop of to make your narrow and specific and custom game.

The plus side is you won't have to pay anything for any of this. The only cost is your time and sweat learning a new set of APIs.

Wow! You really are a Servant of the Lord, what a wonderful and detailed reply. I was thinking would I get a response and whamo! You made my day. Thank you so much. You helped me to re-think a lot and offered great information. You are correct I really am not sure if it is a database I need, because when I used Irrlicht before storing data was sufficient, I just had to code for what I wanted. The images I have a very small. So, it seems that since I know Irrlicht, it would probably work again as a starting point, since it allows for what I need to do and has a lot of flexibility. I am going to read and re-read your post several times since there is s much good information there. But I wanted to say thank you and may God continue to bless and guide you! biggrin.png

Advertisement

Very very very few games use databases

You are correct I really am not sure if it is a database I need, because when I used Irrlicht before storing data was sufficient

To be fair, there are "databases" and there are "databases". See the difference? :-)

Many names overlap between the two types of systems, it is easy for people to get confused between the two kinds of radically different data management systems.

Relational databases or RDBMS type "databases", the big engines typically powered by SQL and requiring big standalone database server programs and even standalone database server machines, these are used on the back-end of online games for some data. Sometimes smaller games will have libraries to open database files and process them through a mini-server process. Often these are built around large disk arrays and machines with enormous memory needs. These databases have access and update times frequently measured in milliseconds or longer. When you have millions or billions of records in tables that is changed regularly -- such as player account and login information -- these are useful.

There are also "databases" as collections of data, often organized into data tables. These can have relationships and indexes into each other, such as monster 7 is a relationship to a separate monster information table entry with data for a create type called "ogre", or weapon configuration 23 is a relationship to a weapon table entry with data for an object called "broadsword". That data can even be normalized and indexed in exactly the same way the RDBMS servers do things. However, these collections of data are often powered by simple data structures and arrays loaded from data at startup or scene loading time, or they are otherwise populated over time or even have their data pulled from RDBMS databases. These are direct memory addresses within the program, with access times measured in nanoseconds for memory access time. Big games will have many megabytes of this type of data. Tables for asset lookup, tables for object instances and their metadata, tables for collections of resource proxies, tables for designer-adjustable values for tuning, tables for artist-adjustable values like texture names and IDs, tables for animator-adjustable values like mesh names and swappable mesh states, tables for animator-adjustable values, and so on. Games rely on this for nearly everything. If your system is "data driven", it is using these.

Relational databases are often considered fast for business uses as they respond to individual small requests within around ten milliseconds for simple indexed requests. They can also handle requests that take multiple seconds, multiple minutes, even multiple hours to run. When you are serving up a web page to a user to look up a part number or a person's account data, having a data lookup that requires 50ms to find in a RDBMS is not a problem; anything up to around 200ms is generally considered speedy in this environment.

For comparison, many games set updates to 30 or 60 frames per second, which are about 33ms or 16ms. A 200ms response speed that is fast enough for a business to present data to a user is fast enough for a web page, but it is an eternity for a game engine, that same 200ms data lookup operation requires 12 full rendering updates.

Large modern games, especially online games, use both kinds of database.

The slow-loading data is generally on an RDBMS: Your account information and account password, your major play history, and potentially even large chunks of your game's player information and inventory. Some games will use a built-in system for load/save data. If it takes a half second to access, or even five seconds to access, that is fine. Being in an RDBMS means you can build many systems that read and manipulate the data. You can use the data inside your game, and in your development tools, and on your web site, and on your billing system, and in your customer support system.

The fast-acting data is stored in memory tables. This is basically all data not covered above. Everything related to gameplay processing, everything related to running the game and showing the game, all of it belongs in these data tables.

Wow! Thank you Frob. My notion of database, is completely smaller in substance than what the databases you mention can do. That is really powerful data management that you speak of, no wonder they need their own servers. I hope that your eloquent post can help others who come across this page. It certainly helped me to re-think the scope of what I need. It is a like a person unaware of sizes who goes to a Mc Donald's for a simple coke and the person says would you like a supersize, and the person oblivious t what a supersize is says sure, and then they faint when they see how big it is lol. I am not certain how funny that was, but thank you so much fr your help. You have helped me solidify my move to stay away from incorporating a database; I simply do not need it. God bless

This topic is closed to new replies.

Advertisement