Which Game Engine To Start With?

Started by
10 comments, last by muratsal 11 years, 6 months ago
What game engine would be the most practical approach in designing a game? I have researched a bit but I am still unsure what to use, I realize it is personal preference but I just can't decide.

Should I either, use Unity or Unreal Development Kit? Or should I create my own engine, I know it would take a lot of work but I am determined to if it is the best choice, I understand I have a lot of freedom using this option.

Also what would you recommend if I were to create my own game engine, I hear C# and C++ is good, but what about Java?
Advertisement
Which engine is appropriate for you depends on the type of game you're wanting to create, the platforms you want to target, the amount of money you're willing to spend, the experience you already have and on your own personal preferences, and it's usually a decision you will re-examine and potentially change for different projects rather than always sticking with the same engine; your choices are not forever.


Should you even use an engine, or should you create your own? Again, we can't answer this for you, as it depends on your own goals and preferences. If you're more interested in efficiently creating one or more quality games then unless you have particularly unusual requirements or are aiming for a particularly trivial game an existing engine is almost certainly the way to go, but if you're more interested in learning how things work at a lower-level you might want to write more of your own code.

While it's certainly true that an engine can be more restrictive than writing your own code, a lot of beginners seem to seriously over-estimate the impact this will have: if you do a good job of researching and choosing an appropriate engine for the project at hand you shouldn't run into or have to work around limitations very often at all, and many well-designed engines are quite customisable within reasonable limits. In exchange of this very slight restriction -- which may or may not even apply to your specific case -- you get huge time savings in creating, testing, documenting, and potentially supporting all that engine code.

I usually strongly recommend selecting an engine rather than writing your own unless you really want the learning experience; in the majority of cases this will allow you to create a game more easily, much faster, and possibly even of higher quality. If you do elect to develop your own engine you should be sure to heed the advice to write games, not engines (have a read, it isn't advising what most people seem to expect from the title).


What language(s) do you already know? Do you know any languages, or are you starting from scratch? If you don't already have at least minimal programming experience it would be advisable to spend some time learning the basics whether you're planning to use an engine or not. C#, C++ and Java (someone very recently asked how capable Java is) are all fine choices -- personally I'd prefer to stay away from C++ if possible, but that's your decision.



What sort of games do you want to make, and what features do you want to include? What platforms do you want to target? Are you willing to spend some money?

If you can answer these questions for yourself you can use that information to narrow down your selection and make a choice, or if you'd like more outside input this is the sort of information we'll need to offer informed opinions. If you want to make your own decision but are having trouble sorting out the options you could create a decision grid to help clarify your choices.

If you're not sure of what other options are out there you could have a look through the DevMaster Engines Database.


Answer the questions throughout this post and you'll either be able to make your own decision or we'll be able to offer much more informed and specific advice -- without this information any suggestions we make may not be completely appropriate.


Hope that's helpful! smile.png

- Jason Astle-Adams

I was hoping to create a semi-cartoon medieval quest based rpg set in villages around, it would have interesting game mechanics and just because I am choosing a popular genre does not mean it would be unoriginal, after all, my main goals for this project is for it to be original, enjoyable and aesthetically pleasing. Yes I have a fair knowledge of Java and I am currently learning more about it. Thanks for your help and I have narrowed my option down to creating my own game either with Java or C#.
ah, felt the need to accomplish nothing eh?
Writing an engine can be a wonderful learning experience, but its a piss poor use of your time otherwise.
Also, are you new to programming? If so there is a simple answer....Dont.

ah, felt the need to accomplish nothing eh?
Writing an engine can be a wonderful learning experience, but its a piss poor use of your time otherwise.
Also, are you new to programming? If so there is a simple answer....Dont.


Uhm was that meant to be offensive? I'm new to game development so of course I haven't done anything yet :( and yeah, I do want the experience.

I have narrowed my option down to creating my own game either with Java or C#

Alright, so if I understand you correctly you've decided that you do not want to use an engine because you'd prefer to learn about the lower-level details. I think this is a valid choice if that's what you prefer, but understand that it will take you longer to be able to create a game, and you may have to spend more time practising with simpler ideas before you're capable of creating your dream game. You will make many mistakes along the way and face many difficulties, but you will also learn a lot, and you can make great games if you put in the time and effort and stick with it. Don't forget the advice of "write games, not engines", which essentially boil down to not just developing things because you think an engine should be that way -- have a specific game as a target, and add the features it actually requires.


Given the choice between C# or Java I would personally prefer C# for it's cleaner and more modern design, but either language and framework is more than capable of, and is regularly used for making quality games, and Java is also a perfectly viable choice that lots of people enjoy.


Do you have any more questions at the moment, or are you happy to proceed with your learning until you run into more difficulties?

- Jason Astle-Adams


[quote name='Serapth' timestamp='1351915404' post='4996754']
ah, felt the need to accomplish nothing eh?
Writing an engine can be a wonderful learning experience, but its a piss poor use of your time otherwise.
Also, are you new to programming? If so there is a simple answer....Dont.


Uhm was that meant to be offensive? I'm new to game development so of course I haven't done anything yet sad.png and yeah, I do want the experience.
[/quote]

Offensive? No.

Harsh, with a heavy dose of reality? You bet.

Simply put, if you are just starting out, creating an engine is sooooooooooooo far above your paygrade as to be a complete waste of your time, at this point. It is somewhat akin to starting off a career as an auto mechanic by designing and engineering a... well... engine.

Start smaller, much smaller. Like Pong small. You need to understand the mechanics of games before you can even begin to create an engine.

As to your cited examples, UDK or Unity, just for a matter of perspective, both have teams in the dozens working for years on them to get where they are. We are talking hundreds of thousands of man hours and millions of dollars. There is a reason why the vast majority of studios license tech these days.

As I said earlier, building an engine as a learning experience certainly has merit. But even this is folly if you haven't worked with an existing engine yet. You will reinvent so many wheels and waste so much brain power on the wrong tasks. At the very least, get some experience with established engines to get a feel for what you want to implement and what you dont.


What language(s) do you already know? Do you know any languages, or are you starting from scratch? If you don't already have at least minimal programming experience it would be advisable to spend some time learning the basics whether you're planning to use an engine or not. C#, C++ and Java (someone very recently asked how capable Java is) are all fine choices -- personally I'd prefer to stay away from C++ if possible, but that's your decision.




Thanks for using my post as a referance :)
Ive been developing software for several years now. You and everyone plus their brother wants to make a rpg. Simple answer DON'T BE STUPID. A game engine is not a gateway to perfection. You need to know how to program before using a engine. Every engine will be written in a language which you should know BEFORE using it or at LEAST have a good grasp on programming logic. In your case you have none. You need to spend about 6 months or so learning a good easy language like c# and then go grab a good engine like Unity or something simular to c# language based engine.

A RPG is the hardest and biggest game to develop in most cases. Trying to fly into space with a bicycle an't going to happen. You have to build up to something lke a RPG program. There is NO fast track for learning logic and programing. The world would be a better place if the industry was not plagued with people trying to make the next Wow. Seriously this is whay their is a 80% failure rate for projects. Not trying to be harsh but seriously you could ask 10 people if they want to make a rpg and 9 out of 10 would say yes lets start tommarow. Don't fall into that group, research something before trying to attempt it.
Hi, Incompletion



Game engine creation is much more difficult than newbies realize. blink.png

Analogy

Game .... Imagine a Rocket..
Game Engine ... Assembly, Launch, and Tracking Facilities like Cape Canaveral and Houston.
Framework... A certain Space Mission Program, such as the moon being the objective with worldwide contributors.
Corporate Game Developer... A Department of Space Exploration, including everything needed to launch anything for any mission or program.

NOTE: This is a deliberate oversimplification for clarity, expecting you to see the symbolic comparison.

The advice which I am going to give you here has both strategic and tactical (real life career and practical short term) effect if you do them. In order to be merely an interesting hobbyist, you should follow your passion mainly - realities occuring to you will inevitably correct you, though this can be made easier by taking the proven methods of game development success. For someone aspiring to be a professional some day, critical thinking, prevention, and problem solving will be heavy daily demands. You seem to respond to good suggestions in this thread, so I will feed you what you need to know next. We have the extreme difficulty of creating a comprehensive game engine established as a given.


A) Fundamentals - Programming Foundation!

Many hobby games are published in this stage.

Java should be your first game making language, since you have a fair head start in it. Unless you have a respectable amount of programming experience, make a few simple programs before starting any game making. If you have had programming experience enough to begin, then make only simple games for a while. Console programs and games are the ideal beginning area for most newbies, just so you know.

Make some simple console type games before moving forward, like crossword puzzles, "Worm", and so forth. These are the type that do not require a graphics engine in particular, so you can focus on game programming basics.

Do these things well before moving to the next phase.

B)

2D Simple Games on Third Party Game Engine

( Look at jMonkey in your case or other Java engine) - Game can be published at this stage in some situations.

Simple 2D game making is the next area once you are competent in the above beginning one. Make simple games like Pong, Tic-Tac-Toe, Defender, Tetris, PacMan, Asteroids, and so forth - the easier 2D games for your first 5 to 10 of them.

Game Engines List: Java game engines included (Especially look at jMonkey...)
http://en.wikipedia....of_game_engines

Make simple 2D games on someone else's game engine for a while.

Refine each game so you are adding features creatively and gameplay is smooth before moving to the next one.

Don't get lost in the game creation jungle by starting on any game engine in the next year or two at least, unless you are confident in your genius aptitudes.

(Notice: A third party game engine often requires the use of a certain framework upon which they created it in order to develop games, probably one of the Java frameworks in your case, plus libraries.)


C)

Game Coding on a Framework

- Can be preparation for publishing a game or creating a game engine.

creating your own games independent of the game engines of others is the next stage. You will likely need to choose a Java IDE and/or Java framework at this phase, probably in a couple years minimum (again - unless you are a genius with all day available). Use this chosen development environment to make a simple version of the game of your dreams. You will probably need to start and restart a few times, maybe abandoning your first game source code entirely to begin a second or third time.

Start with 2D games and eventually - maybe - begin very simple 3D games.

Don't try game engine creation until this stage of framework utilization.

Refine a game before starting a game engine! It must be ready and well organized to be used as a kind of pattern to mold game engine components from it.


D)

Game Engine Source Coding - An IDE is likely needed such as Visual Studio, MonoDevelop, or Java IDE for the huge development of very sophisticated games employing teams. If not, then a lower level framework such as .Net Framework, Mono, or Java framework might work for an indy game developer. (See also other frameworks, such as SharpDX)

Creating the game engine simultaneous with a simple game might be the best way to do it for your first try in the game engine stage. This is why I recommend an industry standard IDE or a framework for you, since it might be better for the relatively unique challenges of Java. After research, you'll see what I mean.

Note: The clearer the boundries between game source code, game engine source code, and framework, then the easier it will be to understand and make major changes or spawn new games, speaking in general though you might be exceptional.

Hey! You are probably at least a couple years from starting to make a game engine. Most people who set a goal to make a game engine never do! Not to discourage you but urge you to do much assessment and research.

Game engine creation is a mountain to be climbed and hiked, but no running, skipping, or hopping, because getting to the top will require very careful steps! You must look and plan for the coming challenges or you might die before you reach the peak! These principles are just as true for game development! The whole game development community is proof of this!

Much research is going to be required. The further you grow, the more debugging you may need to do. You will need to make quite a network of organizations and individuals to help you with information, advice, and problem solving. On the reward side, the more you achieve then the more satisfaction you will get.
I wish you well! Have fun in all you do! smile.png


Clinton

Personal life and your private thoughts always effect your career. Research is the intellectual backbone of game development and the first order. Version Control is crucial for full management of applications and software. The better the workflow pipeline, then the greater the potential output for a quality game. Completing projects is the last but finest order.

by Clinton, 3Ddreamer

This topic is closed to new replies.

Advertisement