Best game development resources?


Aethix

Member
Joined
May 8, 2009
Messages
110
Age
32
I'm thinking about becoming a developer, maybe doing some work over the summer. My problem is, I don't know what kind of tools I should use for creating high-quality games. My greatest work is a 2D Pong game with the images as blocks created in Paint and the one sound effect was played from a cheap keyboard. Naturally, I would like to create something a bit better for the Pandora, especially if I want other people to play it.
Of course, to do this I need better tools that Paint and a keyboard. (I can't play worth a flip) BlitzBasic, the only good language I'm familiar with, requires DirectX and therefore won't work on the Pandora. So I would like to know what kind of (low cost/free) tools the developers, artists, and musicians here use in their work. So far, I need a C++ IDE, a 2D graphics program, a 3D modeling program, and a music creator. I also doubt I am alone in my issues.

C++ IDE: the general consensus I've heard on the boards is that Code::Blocks is the best IDE and compiler available. Still, I'm open to suggestions.

2D Graphics: The only good free graphics editor I've heard of is GIMP. I would like to know if it's any good and if there are better alternatives.

3D Modeling: I've done a little snooping, and found a program called Blender. (http://www.blender.org/) Wikipedia says it is fairly high-end for free software but somewhat difficult to learn to use. If anyone else has used it, your insights would be appreciated. Or, if there is a better one that I haven't found, I would love to hear about it.

Music Creation: Someone on another forum I'm a regular at pointed me toward the Finale Songwriter. (http://www.finalemusic.com/SongWriter/) It looks good, but it's also 50 bucks. If anyone uses it, or has something else that's good, I made this thread for recommendations.

So, I would like to hear the insights, opinions, and personal of the developers here so I can make an informed decision of what software I use for my own work. I imagine other noobs like myself would also like to hear this information.
 
GIMP is really good for bitmap stuff, but you should also look into Inkscape for vector graphics.
Blender is quite amazing as free 3D modellers go, and it imports and exports just about everything, but if you've never used it, it will take a few days to learn. Or weeks. I forget.
Edit: Once you've learned Blender, you can get it to do just about anything. Even video compositing.

I don't know anything about music, but Audacity is pretty well-known as a free sound editor, and it can synthesize some stuff and its effects are decent. I would recommend it for prototyping sound effects.

Code::Blocks is pretty decent, but for some reason I've always preferred using makefiles. For that I would recommend Geany. Geany sucks at code completion, but it's a step above the text editor-and-a-terminal I used to use. And it automatically uses any makefile that's in the same directory as your source, so you don't need to set up a project to compile with it.
No, wait, I remember why I left Code::Blocks. It started crashing on an hourly basis. But give it a shot anyway. When it's not crashing, it's a good IDE.

The closest language I can imagine to BlitzBasic would be something like Python with pyopengl or whatever's getting ported. I'm just using C++, because I always use it.
 
I actually used Audacity to record an export the sound effect for my pong game. I could never get it to do anything other than record sound off of a keyboard, and I suck at playing. I will definitely look into Inkscape and Blender.

I've actually looked into C++, and it seems a lot more intuitive than all the so-called "easy" languages like Java and Visual Basic. I'll take a look at Python, but I've heard it runs more slowly than other languages because it's interpreted.

Anyways, thanks for the help. I really appreciate it.
 
Yes, if you use Python, you'll want to avoid doing anything intense like matrices, physics, and certain kinds of AI.
Java is kind of a pain since most libraries are written in C, so using them in Java requires a little extra effort.

Visual Basic is right out.
 
Alright, follow-up question: what situations are best for bitmaps and what situations are best for vectors?
 
About 'a sound/music/track editor' there is an editor out there, im not sure of the name now. but it exists...
it allows you to digitally 'build' songs... kind of like midi composition. anyways, its even professionally used, and it was made for linux.

do a search around and you may find it, the truth is out there.

cheers
 
There's not really any situation where it's practical to use vectors directly in a game, you usually export the vectors as PNG first, or load them into an SDL surface [where they are bitmaps anyway]

Here's the difference summary:
[*]Bitmaps have pixel-level detail. They're a bit easier to draw since you're basically just painting on a grid of pixels.
[*]Bitmaps are faster to draw on the screen. You just throw some bytes into RAM, and later you tell the graphics hardware to throw those bytes at the screen. It's very simple.

[*]Vectors are defined mathematically. You can't, in general, draw a vector directly to the screen.
[*]Usually you rasterize a vector image to a bitmap surface, then you draw the surface. Like I said, you're going to be using bitmaps in the end either way.
[*]Vector images are better for things like icons that might need to be automatically re-drawn at different sizes, but since you can't use them directly in-game, they're not good for a whole lot else.
[*]Depending on what kind of game you're doing, you could consider something like X-moto, where the levels are drawn in Inkscape using the Inksmoto extension, then stored more or less as vector images.
[*]But for general game data, you don't want to bother with them.

I was thinking Inkscape might be useful for prototyping game art. It uses vector paths rather than pixels, so you can adjust the shape of objects without needing to undo or re-draw anything.
But in the end, you'll want to export them as PNGs, or then maybe convert them to JPEG or something. Drawing vectors in the game is not really worth the effort.
 
You're totally like me then! :lol:
I use Code::Blocks as IDE, The Gimp for 2D graphic and Blender for 3D. Yeah, wikipedia is right when it comes to Blender, it's probably the best open software for 3D, but it's very hard to learn. I learned 3DS Max first (student version), and later progressed with Blender. I can't do much other than to recommend all your choices, those are certainly the ones I have chosen for the task of game developing.
 
lulzfish said:
Yes, if you use Python, you'll want to avoid doing anything intense like matrices, physics, and certain kinds of AI.
Matrices can be handled quite efficiently in python with numpy (http://numpy.scipy.org/). Physics are normally done with python interfaces to C modules.

On topic: inkscape, blender, gimp, audacity, python, pygame. That's my recipe for at least prototyping and smaller games. If you need more power (python+pygame is already quite powerful if used correctly) you can go with c++/java.
 
AndIn^.^ said:
About 'a sound/music/track editor' there is an editor out there, im not sure of the name now. but it exists...
Ardour? LMMS? Rosegarden? Hydrogen (Drum machine primarily...)?
There's loads of applications out there; I personally recommend Ardour or LMMS, since they are similar to FL Studio on Windows, which, in turn, I find to be a very VERY good application.
And Ardour has features that are unbeaten in all other music applications I've seen so far.

lulzfish said:
Yes, if you use Python, you'll want to avoid doing anything intense like matrices, physics, and certain kinds of AI.
Java is kind of a pain since most libraries are written in C, so using them in Java requires a little extra effort.
(Here comes my usual propaganda)
It's easier to use C libs in Java than it is to use C libs in Python. Especially if you let something like Maven do all the work for you :p (You basically tell it the names of the dependencies you need and it does the rest for you: it downloads native libs and java libs tailored for your platform; it's basically GNU Make Improved, and with dep handling ;))
And there's almost never a need to use C libraries in Java (really, there isn't...) because since Java has the speed it has, things like physics can be done in pure Java.
BTW, Java isn't one of those "easy to use languages"; I actually find it very difficult to use sometimes because it's so strictly object-oriented. That's why I use Scala: All the speed benefits of Java while still having the syntax features of Python (and more).
Finally, let's remember that Java runs up to 8 times faster than Python, *interpreted* (aka no JIT-ing)! If you include JIT-ed Java, you'll approach C-performance...

lulzfish said:
There's not really any situation where it's practical to use vectors directly in a game, you usually export the vectors as PNG first, or load them into an SDL surface [where they are bitmaps anyway]
Very true, but let's go through some of the Positive things about vector images:
- They are resizable ad infinitum, so you'll never have the problem that your artwork is "pixelated"
- They look much nicer when you rotate them in a game; if you rotate bitmaps they tend to look aliased and choppy.
- There ARE libraries for drawing vector images, even some that use the GPU, and even some implemented purely in shaders. Don't say that drawing vector images is slow (yes, it is slower than rasterizing but not by much with the right libs)
- Vectorized images are generally higher-quality, so if you want to use rasterized images, you really should convert your vector graphics as late in your execution process as possible, so as to retain fidelity.

Of course, everything that lulzfish mentioned is also true.
 
Blender is hard because it has a lot of different key combos and thousand ways to achieve the same thing - I'm starting to get used to it tho.
I wish Blender had better support for shaders, loading them through a python script sucks hard!
Some tools I can recommend:
Blender and ZModeler 1.07 for modelling work.
treed and MakeHuman for model generation (you still have to do alot to them afterwards tho)
Milkytracker and Hammerhead for basic music stuff and prototyping audio (l.. even a microphone is actually enough for me - I can still get some audio folks aboard if I have something impressive), Photofiltre v6 for 2D Textures (I'm still planning to write a clone of that - right now I'm cloning RenderMonkey so I can put it in my games toolbox).
RenderMonkey is next on my list - for shaders ofcourse.
Particle magic works fine for creating particle effects, but thats beeing replaced by my own scripting engine and shaders right now.
gedit is a cool and simple editor for linux, notepad++ for windows and code::blocks if you need a full (but crashy and sometimes weird acting) IDE.
GCC or the MS compiler (through wine) if you want to compile some C or C++ stuff.
IDA + binutils for debugging and seeing if chrunshing worked.
If you want to get some video footage I would recommend .kkapture or fraps on windows and vegas for editing.

Gamedev also has a good list of tools.

Does anyone know a good video recorder, video-editor, image editor or hex-editor for linux?

How about splitting this and pinning it once gp32x is back?
 
On linux..

Kdenlive: non-linear video edition, a bit like Vegas.
gtk-RecordMyDesktop: a desktop capture tool, much faster than xvidcap. Don't know how it'll behave with opengl stuff, though.
Qt 4.x: for coding your own level editor and tools :D
QtCreator: same as above, but perhaps can also be used to create non-Qt apps and games. I have to give it a try (actually using it for Pangea GUI, a Qt-app)
Kate: Is an advanced text editor. I use it for brainstorming.

And the obvious: the gimp, inkscape, blender..


I'm also learning now After Effects (on windows, doesn't work with wine) for creating a mockup of a 2D game I'm in process of designing. Do someone know about a better tool for that purpose? Better if it's for linux/runs on linux using wine.
 
JayFoxRox said:
Does anyone know a good video recorder, video-editor, image editor or hex-editor for linux?
1. Video recorder? Screencasts => recordmydesktop (qt and gtk versions), otherwise Avidemux
2. Video editor: KDEnlive is very awesome, but has some bugs; there aren't really any "good" ones for Linux. Sadly.
3. Image editor: The GIMP, Inkscape etc.
4. Hex editor: Okteta beats everything. I've never ever seen a better hex-editor in my life.

EDIT: someone was faster, oh well; agree fully with the last poster

EDIT2: Some other great stuff:
Source code management: GIT
Diff file viewer: Kompare (also never seen a better diff viewer than Kompare in my life)
All-round IDE: Eclipse (very advanced and with a high learning curve... seriously, who hasn't used Eclipse one time or another?)
Calculator: SpeedCrunch
Brainstorming/UML: Umbrello
Translation tool: Lokalize
 
Blender is not hard to use, and is massively faster than anything else especially at poly by poly modeling(one of my interests) due to being keyboard driven. I have used 3DS MAX and absolutely hated it, the interface is too fixed, and feels extremely clunky because of all the mouse driven menus.

Also having a built in compositor is immensely useful, I haven't made anything non trivial which doesn't use the compositor and render layers foe effects and tweaking.

If you want an IDE, try learning Vim, modal editing is massively more effective, especially for programming ;) with the added bonus of not wasting half of the available screen space displaying useless junk.

I'm also learning now After Effects (on windows, doesn't work with wine) for creating a mockup of a 2D game I'm in process of designing. Do someone know about a better tool for that purpose? Better if it's for linux/runs on linux using wine.

Blender, Bunch of textured quads.
 
I tried KDENLive before but it was really crashy and the video filters didn't work too nice neither. I will probably just write my own video editor using OpenGL ES and shaders then..
I also had Okteta before but there is no file compare feature which is important to me. As far as I remember it wasn't possible to highlight and output structs neither.
Some of the areas were linux is FAR behind windows imo. Even the worst windows hex-editors are better than the linux hex-editors and windows ships with a stable editor which can atleast be exploited to get something cool done.
Anyone interested in helping me with some tool programming or a framework so we can get video / image / particle and shader editors on Pandora? I need these tools for my game anyway so any additional help would be great - just PM me if you are interested.
Back to the topic now :) (Just in the case that there is one left after going offtopic for so long and no specific outlines for replys)
 
lulzfish said:
Yeah, gtk-recordmydesktop is great. I have some videos on my blip.tv account of OpenGL stuff recorded with it.

So.. it works with OGL to some extent, clearly.
I can't follow your line of reasoning here... It doesn't have to use OpenGL just because it's able to record a framebuffer...?
 
AndIn^.^ said:
check this out:
http://cairographics.org/OpenGL/

cairo is great, and will get your beloved svgs to work.(everyone uses it)
there are even ways of using it inside sdl and the likes, there isnt much cairo cant do, or work with. ;)


cheers.
One of the "vector image" rendering libs I was referring to. Very awesome indeed; and pretty much all graphics toolkits out there use it in some way or another (Qt, GTK, ...)
 
Back
Top