Advertisement

Game modelling and other tools for *nix

Started by July 11, 2004 09:36 PM
7 comments, last by Scourage 20 years, 2 months ago
Heya folks. As I usually do, I spent a while googling and reading these forums here before resolving to post. But - I decided maybe that since I was having a hard time finding anything decisive, I would toss the question out and see if anyone had any experiences they could tell me about. If people contribute nicely to this thread, there may be others who become interested in *nix game development (I hope), and I'm sure I'm not the only one will be found grateful! I frequent the forums here, and have spent a lot of time interested in and working in graphics, but not so much time working on actually creating games. Now that I have a job as a full time developer, my interest is turning away from more academic things, and I actually very much have a desire to work on games. Please read on - I don't come here with the usual questions of "how do I create games"... please know that I have a BS in CS, a BS in Applied Mathematics, and I have worked on physics/graphics things ranging from cloth/gel particle simulations to optimized raytracers with indirect illumination, a "toy" graphical BBS server (yes, it was a 100% academic experiment toy, it was a piece of crap, just a toy... ;))... I could go on, but I'm just trying to give the idea that I am not coming on fresh needing books on OpenGL and math and C++. What I AM posting for is that well - anyone who has been a fulltime dev knows well that as with any job, you get the whole 4-hours-a-day-and-weekends-to-yourself thing going on. Also, since you spend alot of time at work writing the more mundane parts of products, you don't really look forward to coming home and writing the plethora of tools you need to even START a game, and eventually losing interest and inspiration to write the actual GAME after months of writing the tools. So. I'll get to the point! I have seen folks writing games for *nix. THAT is my primary interest here. I will not write a game without it working on FreeBSD and Linux. Windows porting will be given serious thought, since the audience would usually be very small without a Windows port - but the primary development environment will be a FreeBSD and a Gentoo Linux box. I know there are others writing games in *nix. What tools are you using? I've seen blender (and some other lesser quality modellers). I haven't seen much in the way of sound synthesis/editors (ala CoolEdit clones for *nix). Now... aside from setting up a toolkit, there is the issue of loaders and all that. From my searches, I know that Blender exports VRML - are there any open source loaders for VRML? What are Blender's/VRML's flexibilities for exporing your model with texture coordinates, keyframing for character models, things of this nature? This also may seem rather silly - but since I have not used modellers extensively in the past I simply don't know - does Blender/other models allow you to add user-defined 'tags' to entities in models that can be saved in the model with special properties that will be meaningful to the engine? (Think Quake-style maps where brushes could have properties that were meaningful to the engine... That is what I am getting after here.) Anyway, I hope I'm not sounding too noobish. I've done some reading, spent cumulatively a few hours on google searching about, and found relatively little in the way of people giving advise of this nature. Any input would be appreciated. Thank you!
hey mate,

although i haven't used it much, I think blender is one of the few free linux tools that supports animation. The working environment is definitely alien though and will require some devotion to get used to. A modelling application called Wings3d is a very easy to use 3d modeller and supports basic uv mapping. You can modify the source to it or add extra functionality (including level "tags") through plugins (coded in the Erlang language). If wings3d supported animation I wouldn't need blender at all.

"...are there any open source loaders for VRML?"
If you use one of the many open source scene graphs out there, these usually will contain loaders of many different formats.

From openscenegraph.org...
"...loaders include OpenFlight (.flt), TerraPage (.txp) including multi-threading support, LightWave (.lwo), Alias Wavefront (.obj), Carbon Graphics GEO (.geo), 3D Studio MAX (.3ds), Peformer (.pfb), Quake Character Models (.md2). Direct X (.x), and Inventor Ascii 2.0 (.iv)/ VRML 1.0 (.wrl), Designer Workshop (.dw) and AC3D (.ac) and the native .osg ASCII format. Image loaders include .rgb, .gif, .jpg, .png, .tiff, .pic, .bmp, .dds (include compressed mip mapped imagery), .tga ..."

[edit: fixed broken link tag -SiCrane]

[Edited by - SiCrane on July 12, 2004 11:44:10 AM]
Advertisement
Ever check out Audacity? http://audacity.sourceforge.net/
I've been an avid blender user for quite some time now (and coinsidentally a gentoo linux game developer as well). I have come up on the same issues you are.

I've written some export scripts for blender that will export the MD2 and MD3 format (quake 2 and 3). The MD2 is near complete but MD3 needs some work. Although not directly game releated (but still useable) I also have OBJ, 3DS import/export scripts. My website is:

http://bane.servebeer.com/programming/blender/index.html

Blender has an empty object that I'm using for the tags in an MD3 file. You can add attributes to an object by using some kind of name encoding/decoding convention. Blender uses python as a scripting language. That's what I've been using to write the import/export scripts for it.

Blender also has the ability to do UV texture mapping, skeletal animation, and keyframe animation. It's a great tool for builidng 3d game resources, just gotta learn how to use it (it's not that bad really)

Other tools that I use are Audacity for audio editing, Cinelerra for Video Editing. Kdevelop for the programming IDE.

As for developing games on Linux, I can't recommend enough using the SDL libraries for init/input/timers/threads, OpenGL for graphics, OpenAL for audio (SDL_mixer is a close second). I also recommend HawkNL for network.

As for loaders, I've found that it's best to roll my own. That way I can load into my own data structures pretty easily.

If you have other questions you can drop me a line on my website forums or here.

cheers,

Bob

[Edited by - Scourage on July 15, 2004 6:14:10 AM]

[size="3"]Halfway down the trail to Hell...
You have all been a great help so far. Thanks a ton.

@Scourage: I was thinking about Blender for most things like - environment design... I want a building here - design it in Blender. I want this landscape... design it in blender. What about the property tags I mentioned? Can Blender (or any other modeller for that matter) do things like that?

Of course, I had planned to use SDL for init/input, OpenGL for graphics. I had thought of using SDLmixer for sound, but now that you mention OpenAL, I should give that a shot. I had planned to implement my own networking layer, maybe I will look into HawkNL. Since I have done alot of networking code in the past I probably won't be too bad off. As far as timers/threads, it does not look like SDL offers alot extra in the way of functionality, and I was planning to stick to POSIX standard stuff threads and IPC. Is there a reason perhaps I should NOT do this? Are there issues mixing POSIX IPC/threads with input/other SDL stuff, especially in windows?

Thanks again.
scourage: weird, I was just looking at your plugins about the same time you posted... (that's x-files spookyness)
Advertisement
Hey,

There was SoftImage|XSI for Linux if I remember correctly.

The more applications I write, more I find out how less I know
In Half-Life for each surface to have meaningful meaning it needs something to figure out what meaning does that surface has. In Half-life it does this 2 ways: 1 by the name of the texture and two is by senting the content of the surface to something.

Xori, you want an engine with some abilties of quake you should look into implementing BSP for your world meshes. you could probaly port the quake map compile tools to *nix and i think there is a radiant version that runs on *nix.

Also, since your using *nix you wouldn't be scared of the GPL virus? if your not then you could look at the quake source code and do something from there.
Quote: Original post by Xori

@Scourage: I was thinking about Blender for most things like - environment design... I want a building here - design it in Blender. I want this landscape... design it in blender. What about the property tags I mentioned? Can Blender (or any other modeller for that matter) do things like that?



Xori,

blender can do that, sorta, just not directly.

I'm writing a BSP exporter for blender right now and I'm running into the same issues where how do you tell what the brush properties are (lava, water, passthrough, trasport, etc). In my exporter I'm going to use a material name encoding scheme. I will use the name of the material as a the way that I tell the BSP compiler what attributes I give the brush. For example water would have the material name water_123456 where the 123456 determines what properties that particular brush would have. It's still a work in progress, but it'll work.

Also, for tags in the MD3 format, I was going to use the blender object "empty" which is basically a point in space and then use the naming scheme trick to determine it's properties.

If you're looking for something that has the ability to set these properites directly for building map files (or somthing that's already built-I'm not done writing mine), there is a QERadient for linux (http://www.qeradiant.com)

cheers

[Edited by - Scourage on July 19, 2004 4:49:16 AM]

[size="3"]Halfway down the trail to Hell...

This topic is closed to new replies.

Advertisement