Author Topic: Advice for picking a game engine  (Read 2255 times)

Advice for picking a game engine
« on: September 08, 2012, 10:00:15 PM »
Hey, couple days ago I randomly decided I wanted to make a touhou like danmaku game so I've been researching things and found a couple options and have questions regarding them if anyone here uses the programming languages

First, I found HTML really hard to learn, I actually just ended up copy pasting codes to get it to work so that prob tells you about my knowledge of game programming...

Anyway,

I found basically I'm going to need to learn one of the following:
Danmakufu
C#+XNA Game studio
Python+pygame+panda3d
Game Maker

I heard python doesn't deal well with alot of objects on screen at once, and that game maker lags around 900 so I'm not sure about them.

I've been reading over the Danmakufu thread, and the language it uses (though it's supposedly simplified) is still pretty complicated, so I thought maybe I'd be better off learning one of the other languages since they seem just as complicated, but they may as well be 10x harder I have no idea, so yeah I'm asking you guys what do you think about it lol I basically want to try and make a game that looks as good as games such as MoF or so.

I didn't think game programming was so complicated, I read a few danmakufu beginner tutorials and is everything really just coding stuff in a textpad with image files? all the effects and stuff etc? Before reading about programming I had thought it was just animation made in 3D programs/After Effects or so with alpha/matte channels being overlayed on the game lol

Here's a quick question though for Danmakufu I had
The background animation you usually see like leafs or snow flakes transforming while falling in the background, is that all done with 1 image and programming?
same question with spellcards, some look like their glowing animation effects almost, is that just images layered or such to give the effects of glowing and was all done with programming? lol

EthanSilver

  • Lunatic Programmer
  • Got squid, will travel.
    • Ethan Silver's Junkpile - Hacks and translation patches
Re: Advice for picking a game engine
« Reply #1 on: September 09, 2012, 12:37:53 AM »
First, I found HTML really hard to learn, I actually just ended up copy pasting codes to get it to work so that prob tells you about my knowledge of game programming...

Don't do that. At the very, VERY least copy the code by hand rather than copy-pasting it. There's a difference between seeing what an example does and seeing how an example works. :)

I heard python doesn't deal well with alot of objects on screen at once

Python is an interpreted language. This means that it is slower than something that can produce a .exe in machine code. However Python is also much easier to learn and faster to write than, say, C++. If you're going down the programming route, the last thing you should be worried about is "how fast will my game go" when you still haven't even written a single line of code. And you will not hit Python's limitations for your first project, or a while anyway; gotta learn how to walk before running. :)

I've been reading over the Danmakufu thread, and the language it uses (though it's supposedly simplified) is still pretty complicated, so I thought maybe I'd be better off learning one of the other languages since they seem just as complicated, but they may as well be 10x harder I have no idea
They are 10x harder. And that may be an understatement.

Danmakufu sets out EVERYTHING for you and leaves you to fill in the blanks with some code. You don't have to worry about getting a graphics engine working - there's already one. Music, sound, input, sprites, the overall game logic, all of that is already done. And better yet, the scripting language used is made especially for shooters - you can create a bullet using a single command.

With, say, C++, you start with a blank slate. You need to add all of this stuff, and C++ was not created with shooters in mind. It does not know what a bullet is, what a bomb is, what the player is, what an enemy is, or even what an x/y position on the screen means. All of this must be programmed before you can even get to a state where you're able to do the same stuff Danmakufu does out of the box. And then you still need to use C++ to produce your game's content - there's no command for "creating a bullet" or "aiming at the player", all of that, too, must be programmed before being usable.

On the other hand, a programming language gives you control that Danmakufu does not allow since you built EVERY aspect of the game yourself, not just the spellcards and players/enemies. Which also means you can manipulate EVERY aspect of the game however you want it. :)

I didn't think game programming was so complicated, I read a few danmakufu beginner tutorials and is everything really just coding stuff in a textpad with image files? all the effects and stuff etc?

The idea behind a program is to give the computer a list of steps to follow which explain how to do what you want to do. Your computer does not know what a bullet is, or that it's supposed to move, or that it can kill the player on contact. Or even what "drawing an image onscreen" or "playing an MP3" means (though you can generally find libraries someone else wrote to do these things; on its own, C++ has noooo idea what a png or a wav are).

The bottom line is your computer is dumb as a sack of bricks and needs to be told absolutely everything. Which, you quickly find out, is a lot. However, the neat thing is that you can generally reuse code from one project to the next so over time you build up a nice little library and can eventually almost skip straight to the game logic itself.



What you should go for depends on your goals.

As a hobbyist, Game Maker and Danmakufu are easiest to learn and will allow you to see results in very little time. You will be limited by whatever program you use but you should generally have no problem working your way around those limitations. If you "randomly decided you wanted to make a game", this is probably your best bet as you'll get results fastest.

If you want to work on more serious projects, learning a programming language is the way to go. This will take time and effort to properly learn. Your best bet is to start with a small, simple language and learn the idea behind program logic. You'll then easily be able to move on to more powerful and capable languages (say, C++/C#) and slowly work your way towards big and involving projects. But again, you will not see results as fast as you would with a 'Maker of some kind.


Latest works
The Strongest

CK Crash

  • boozer
Re: Advice for picking a game engine
« Reply #2 on: September 09, 2012, 12:59:47 AM »
Rather than repeat EthanSilver, lemme just tell you this. Game Maker is too slow to handle anything beyond easy mode danmaku. Stick with Danmakufu, have the Danmakufu Wiki bookmarked, and read the tutorials carefully. If you're going to copy/paste chunks of code rather than understand each and every line, you're not going to get far.

Here is a simple example of Danmakufu 0.12m code, try to understand what each line does and why it is used:

Code: [Select]
//Creates a variable called "frame", and starts it at 0.
let frame = 0;

//The main program loop, which runs 60 times a second.
@MainLoop {
//Runs this section of code only if frame equals 120.
if(frame == 120){
//CreateShot01(x-position, y-position, speed, angle, graphic, delay time);
//In this case, CreateShot01 will be used to spawn a bullet at the boss, aimed towards the player.
CreateShot01(GetX,GetY,5,GetAngleToPlayer,RED03,10);

//Sets frame back to 0.
frame = 0;
}

//Adds 1 to frame.
frame++;
}

This code makes the boss shoot a bullet at the player every two seconds. Like spoken languages, programming languages should be learned gradually. Danmakufu is great because you can start small with things like the above chunk of code and not worry about improving the graphics and game engine until you become more skilled. Try making single spells, and then bosses, and then stages. Then, mess around with player scripts and making cool graphical effects. A full game is ambitious, but definitely possible as long as you don't jump right into it.

Re: Advice for picking a game engine
« Reply #3 on: September 09, 2012, 05:08:53 AM »
Thanks for the advice guys,I'm going to see what I can do with dannmakufu. I literally just read all of the old wiki to get an idea of how it works and it's pretty awesome once you start understanding it, and it seems the author is doing frequent updates. I hope someday we can get a translation of his new manual/tutorial or whatever for the new version, I always like reading official manuals but dang if only I was fluent in nihongo lol