Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I'm new to game development, and want to build a snake game for Android (Maybe also iOS). I've made several apps for Android and have a pretty good experience with Java.

The question is, do I need to use an engine for making a simple snake game?

share|improve this question

closed as primarily opinion-based by Anko, concept3d, Byte56 Feb 22 at 15:52

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

2  
there are many reasons for either approach but they are largely subjective, therefore offtopic here. Question is: do you primarily want to make the game, and do so quickly? Then engine. Otherwise the decision is really up to you. –  LearnCocos2D Feb 22 at 8:38
    
I pretty much wanna learn how to make a game, it doesn't have to be that quick. –  BeHaa Feb 22 at 9:03
    
learn to make a game, or learn to make a game engine? Use an engine unless it's the latter. ;) –  LearnCocos2D Feb 22 at 9:12
1  
Engine NO. Multimedia library YES. A multimedia library will solve issues you shouldn't have to worry about like rendering, playing sound and reading input, but it won't solve issues you absolutely should have to worry about like the game loop, user interface or collision detection. You're doing this to learn how to make games, not how to use a piece of third-party software. –  dreta Feb 22 at 11:51
    
Because snake is a pretty simple game both are good choices it depends what you want : Do you want to learn how a specific game engine works OR how game programming in general ? –  tigrou Feb 22 at 12:10

2 Answers 2

up vote 2 down vote accepted

It does not really matter what kind of game you are making. All that matters in truth is if you wish to invest more time playing around or you want to get serious, see results within a reasonable time frame and focus the remainder of your energies on the game-play experience. This compromise between spending time playing around with code vs. doing hard and serious work will resurface many time in your journey as a game developer and the choice boils down to being willing to spend the time reading manuals and learning about existing APIs or being willing to settle for subpar results. Either choice is reasonable when you have no temporal and budgetary constraints.

What is the most effective path? It is using existing code (whenever possible) nearly 100% of the time for an indie developer. The only time I would not use existing code is if I am writing something that has not been done before (after searching the web) or it has been done with some serious apperant flaws. Writing your own code when you don't need to is a bad habit that is hard to shake.

Think of all the pieces that come together that you don't create from scratch:

  1. You are not building the hardware the game will run on.
  2. You are not writing the operating system.
  3. You aren't creating the language and it's compiler.
  4. You aren't rewriting the API for that language.
  5. etc etc

Spend some time and get a good grasp on the tools that are available out there.

share|improve this answer
    
I'd also add that there are some games that using an engine is not that desirable though. Though these usually fall into the learning game category. I'm not sure if I'd use one in a 2D MTG-like TCG either. –  Dracor Feb 22 at 11:04
    
That's assuming an engine is super specialized. I'd much prefer having something to do the heavy lifting for me than to write all that graphics api every time. –  Thebluefish Feb 22 at 13:13
    
There is not much heavy lifting in case of a simple 2D TCG, a logic game, or, say, a hangman. You can just make it with the normal phone controls, and you don't need a graphics API. –  Dracor Feb 22 at 14:33
    
Nice answer. Thanks a lot –  BeHaa Feb 22 at 14:59

To be honest, my first 2 games were based on control based applications (first was a small Delphi WinForms RPG but at that time I was pretty new to programming, so a simple inventory, combat and point and click movement system + tile based map was the best I could do, the second a Windows Phone 7 Silverlight game, although the latter worked justified using Silverlight).

For a simple snake game, using an engine is not necessary, but I'd still advise using one to get used to it. Especially since you are already experienced in Java if you want to start developing games later with the said engine.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.