Not logged in, Join Here! or Log In Below:  
News Articles Search    

Submitted by Malte Weiß, posted on July 18, 2001

Image Description, by Malte Weiß

I'm a seventeen year old student from Germany approaching the 12th grade. In March 2000 I decided to design a real 3D computer game after I have had spent the time before writing smaller games and database applications to earn some money. Fortunatly my school gave me the opportunity to get a higher score in my A-levels next year if I present and illustrate my project in an oral test. That's given me another motivation to work harder:-)

Because of my philosophy not to use "foreign" programs I have attempted to do everything myself. And it has worked until now ...

In March 2000 I started to write a 3D level editor called 'Worldbuild' (image at top left). I have worked with several editors before so I followed the aim to create an easy-to-use but highly effective editor. The work space is seperated into three 2D views and one 3D view. The user inserts primitives into the 2D view. These can be modified by cutting, moving, rotation etc. Additional objects like lights, lens-flares and sprites can also be created here. All these elements are directly rendered in the 3D view. It is responsible for all texturing operations as-well. The most important actions can be done by mouse and/or a few keys.

It needed nine months to get the editor into the beta stage. After that I began to implement special functions like a landscape-generator, a texture interpolation function (to correct smaller texturing errors) etc. The program interacts with DirectX. The 2D view uses the DirectDraw components of DirectX7, the 3D view renders using DirectGraphics of DirectX8.

In November 2000 I decided to create my own texture format to be independant from standard formats. So I developed the 'Texture container'. It is used to create a container of imported bitmaps. A special function of this program is the possibilty to do image animation.

A compiler (image top right) is integrated into Worldbuild which converts the maps into a format which is faster to read. Moreover it pre-creates an OcTree structure which is used by the game.

Some other programs followed like a file container (to group and contain files) and an updater program called 'Phalanx Updater' which can be used to download the newest components of the project. This was designed and created for the beta-testers.

On June 22nd I started with the core game: the 'Racer' (I'm sorry about that stupid name. I'm still searching for a better one.) It is (or will be) an action racing game: you will fly races with small futuristic space-ships, armed with several weapons you can shoot your enemys. I think, I'll write this part of the game in Autumn :-) At the moment I'm writing my own 3D engine. The first screenshots are shown in the image above (images bottom left and right).

The progress of my project can be "viewed" on the homepage: I'm sorry that it's mostly in German. But the screenshot and statistic sections might be of some interest for you:-)

I'm still searching for a better name for my game ... I welcome every idea ;-)

Malte Weiß

Image of the Day Gallery


Message Center / Reader Comments: ( To Participate in the Discussion, Join the Community )
Archive Notice: This thread is old and no longer active. It is here for reference purposes. This thread was created on an older version of the flipcode forums, before the site closed in 2005. Please keep that in mind as you view this thread, as many of the topics and opinions may be outdated.

July 18, 2001, 04:02 PM

geeeeeez you're only 17? I think the shots look fantastic, I wish i had half that much ambition when I was 17. Keep it up, you're gonna go real far.


July 18, 2001, 04:06 PM

What about "F-Zero"? Just kidding...

Keep up the good work.


Brandon Wood

July 18, 2001, 04:08 PM

Wow cool.. I'm 17 as well! Nice stuff man, keep up the good work. Glad to see some other teenagers getting some work done in the world! =)



July 18, 2001, 04:09 PM

wow.. the same age, and done so much yet i'm dreaming just about..


und deine schule unterstuetzt dich auch noch dabei, *neid*.. ich bin aus der schule ausgestiegen ( nach den 9 obli jahren, klaro;) ), weil ich mich entscheiden musste, meine schule tat gar nichts in der richtung.. klasse man, gratulation

Sebastian Sylvan

July 18, 2001, 05:27 PM

This pisses me off. I'm two years older than you and you've accomplished a lot more than I have. Damnit!

Nice work btw! I don't think that it's a good idea to "not to use foreign programs". Reinventing the wheel is something that I never quite found rewarding. Why is this so prominent in the gaming industry but nowhere else?

The level editor for instance could have just as easily been WorldCraft or Q3Radiant (which have source available I think).

Still, nice work.


July 18, 2001, 05:47 PM

I applaud your decision to make your own tools, I do that as much as I can so I know exactly what I'm working with, and can change it when necessary. Do octtrees really work well with arbitrary geometry like that? I thought for indoor environments its best to use bsp or portals, and octrees work best for terrain.

If you want a better name suggestion we'll need more info about the game, is it futuristic? Does it have a theme? What's it about?

Nice shots anyways,

Jan Niestadt

July 18, 2001, 05:51 PM

I think it's because a lot of programmers (myself included) are control freaks. They can't handle it if they don't have full power over each aspect of their program. Learning to control this obsession is the first step of the 1000-mile journey to becoming a great developer. If anyone succeeds at this, tell me how ;-)

Sebastian Sylvan

July 18, 2001, 06:10 PM

Jan.. Hmm.. Then how come this doesn't apply to things such as sound-libraries? Most people don't write their own sound-libraries. Input libraries are another thing.

It puzzles me. If I can get code for free (and if I can see the source then even better!) I'll use it! Assuming it does ALL that I wanted to do in the first place.
If I have a few optimizations I think nobody else has thought about, then I'll code it myself.


July 18, 2001, 06:15 PM

Programming is one of the few industries where laziness is a virtue.



July 18, 2001, 06:21 PM

Sure, ask some Visual Basic programmers :)


July 18, 2001, 06:28 PM

Well, doh! Its much easier to do a terrain engine than an mp3 decoder. And there's alot more info on terrain generators(could be some other engine).


July 18, 2001, 06:38 PM

Building all your own tools can grow your development time greatly.

For every month you don't ship you've got no new revenue, but still have to pay salaries, rent, supplies, utilities, consultation fees, etc. etc. It's expensive to run a business, particularly when you don't have revenue until your game breaks even.

It's not laziness, it's called having a clue.


July 18, 2001, 07:06 PM

Shiiiiit boyyyyy.... it's all demoscene related, we all used a soundlib but wanted to do the cool gfx-fx ourselves :)


July 18, 2001, 07:42 PM

Funny thing is that I tried building a Quadtree engine similar to yours last year (when I was 17 and starting senior year high school ;). But I never got as far as you cuz for me school was more of a hinderance then helper. Must be different in Germany, but here English, Sociology, the Americican version of History and other useless crap are held far more important than math or programming classes, it is stupid that they teach you to go twards what they want not what you want.

Anyways, just wanted to say that it is looking good and keep it up. I see that at least you could use DirectX without problem. I had to give up on it and start using OpenGL, again. Oh and try using brute force databases(large arrays of verts), because quadtrees aren't that T&L friendly,.


July 18, 2001, 08:09 PM

Keep in mind that a large majority of us are not getting paid to make the things that we do. A moderately sized game project has so many parts and requires so many talents that it's extremely difficult to finish anything alone, and even harder to find good people to work with. A smaller project such as a level editor may take alot of time to create, and may not be as well organized as some other system like WorldCraft or Q3Radiant, but it's feasible and can be completed in far less time than a full game. I think this is why we see so many people re-inventing the wheel in this field. It's just plain fun.

Knowing that it's your code and your code alone that makes up a program is a great feeling, and it's even better when you finish that program. That's how I got started with all of this, I looked at a terrain shot about a year and a half ago and said "Hey, I can do that. Yeah, I'm gonna do that" and I went off and I did it. I was so happy when it actually worked that I fired off an email to Kurt the same day asking to post it as an IOTD. Before he responded, I figured out how to add some basic vertex lighting and took my first screenshot.

I'm still a little embarassed by the outcome, but that's okay, because it was just a first try. Anyways, the point of all this is that we've got to take a step back and realize that some of us are just doing it because it's fun, no more.

Oh yeah, almost forgot.... Nice shots.


July 18, 2001, 08:25 PM

Um, you do realize that I was saying that it is better to reuse tools instead of writing your own, right?

Part of having a clue is reading the post before replying.


July 18, 2001, 08:30 PM

Hey, half the digital sound libs out there came out of the demo scene :). FMod (by FireLight), mikmod (by mikmak), Midas (by.. uh.. I don't remember), etc.


Sebastian Sylvan

July 18, 2001, 08:44 PM

Laziness is NOT good. Common sense is.

You should spend all the time you would have spent reinventing the whell on perfecting your code so that it is well-commented and easy-to-read. Constantly re-writing sloppy hacks and such.

You shouldn't be lazy. I often write the better part of entire projects twice. Once to get it working, and the second time to get it right (using lessons learnt from the first time). This all happens incrementally of course, module by module.

Sebastian Sylvan

July 18, 2001, 08:50 PM

You're right. Whenever I program something and use other people's modules I always think "Ah I really didn't do anything hard, I merely glued these modules together added some math code here". So when people say "wow that's great" I always feel guilty saying "thanks".

I just accepted OpenGL as "the metal" for my programming, so I don't feel to guilty about using an API to do 3D-rendering anymore. But it's hard with other libs.

Still, I intellectually know that it's far more effecient to use other people's code. No matter what you do there's almost always someone else who's already done it, and better than you'd do it.
I think much of the reason game programmers (and only game programmers) refuse to use other peoples work is because we think we're smarter than everyone else and thus we don't trust anyone else to do a better job at something than we would.


July 18, 2001, 08:53 PM

No, laziness is great. If I wasn't lazy, I wouldn't write design specs before implementing new systems and require others to do the same, or use OOD, or implement housekeeping functions before everything else, etc.

You shouldn't be lazy. I often write the better part of entire projects twice.
Um.. and that's a good thing how exactly?


Navreet Gill

July 18, 2001, 10:37 PM

Yeah yo... I am 17 too...

I went to the Illinois Math and Science Academy and still they were focusing a lot more on foreign languages, history, and "English". It's not an english class anymore dammit, it's just literature that the teacher wants us to read. So pissed off!! They didn't even let me take computer science classes until junior year!!!!!! AGH! by that time, I was knew everything covered in the class. Such a waste...

For those still in HighSchool, participate in ACSL!!!

Me and other team members got 2nd place (Senior Team-5 person) internationals last year, it's not too hard... If you're a good team, you can make it!


July 18, 2001, 11:18 PM

might take more time to read, understand and write anything...
but an the other hand there are far to much people out there who start out with opengl (or directx or whatever) and have no clue at all how everything works behind the scenes. like they don't even know what a rasterizer is and what it does. only because they felt that they didn't want to reinvent the wheel. what i'm trying to say is that it's always good if you get as much knowledege as you can get. and you can certainly achieve better work when you have an understanding of how things really work. writing you own tools gives yis a great possiblity for that. because there are like half a million things that tend to apear only in the level creation phase like raytracing the lightmaps, CSG, etc. you would never get invloved with that kind of stuff if you just wrote a rendering pipeline.


July 18, 2001, 11:24 PM

i think that's just because most people don't bother with true design and technical skills. they just want to write a 3d rendering pipeline and take that to write a way cool game. finishing that rather simple 3d rendering pipeline they get aware of the fact that there is much more to a game than just cool 3d gfx. so if they'd the ambition to become real programmers they'd jst go out and read articles about software/game design. i mean there are far to much people out there who can't really programm c/c++ but think that copying source code from the net will bring them a cool game.


July 18, 2001, 11:28 PM

talking about other peoples libs.
there are so many open source libs on the net. why is it so hard to just read the source code of other people and read what they did and decide wether their idea was good or not and try to get something out for yourself. there cretainly is a difference between just pluging a lib into you prog or really trying to understand want the author intended it to do.

Navreet Gill

July 18, 2001, 11:47 PM

>Because of my philosophy not to use "foreign" programs I have attempted to do everything myself. And it has worked until now ...

eh?? You wrote yourself like programming language+glut/motif+opengl+windows?

If you did, damn!!!

Otherwise, you're always using other ppl's code, sometimes w/o realizing it.



July 19, 2001, 12:33 AM

Rather good IOTD, today. I think you have chosen the right approach.
"Reinventing the wheel" is very usefull occupation, especially if you want to have deeper understanding of how it spins. ;) Some folks here told a lot of their thoughts about using libs and reusing smbody's code. Some thoughts are very bright, but I think they are adressing another space. The real programmer should resolve such equations from the point of view on his problem, not the coolness of library or smbdy's code. So if you saw smbdy's cool terrain engine you should not try to do your own or even do a remake of smbdy's code, but if you need to do terrain engine, persuating some estimated results, such as profit, education, expierence etc, you MUST DO IT BETTER, even if you are NOT SMARTER. It is possible, believe me. I can evene say there are a lot of ways to make your code better than anyone's else(of course in some
specific areas). So you can make more readable code, more reusable,
faster one, more configurable, more well-designed, add on your own taste. Everything depends on your individuality.

P.S. As for myself, I'm eighteen. I have done some stuff before(
several serious system apps for WinNT, some winsock code,several MFC applications, some graphics stuff(filtration, 2d effects, compression, rasterization, convolution ,etc), some parsing code(
expression calc, differentiation, graph plotting, preprocessing html, without use of lex and yacc), etc), but hence some of this was even made for profit, all this stuff is far from the perfectance, needed to release the sources(currently most code "features" bad formatting, no makefiles, bad OOP design(if C++), if optimized it is completely not readable, if not it enomoursly slow, most classes, funcs and variable names are "taken from the roof"(esp. in older code)). I even have doubts about releasing to the public the stuff I am currently involved into. ;) Anyway I hope you'll soon see my IOTD(in about two months). Guess what it'll be. ;)

Hiro Protagonist

July 19, 2001, 01:24 AM

I think you are confusing octrees with quadtrees. Quadtrees are generally used for terrain, as terrain is pretty much isolated to the XZ plane. Octrees represent an R3 space and are much more adept at containing indoor data, where you have levels over levels, bridges etc.

Bemmu Sepponen

July 19, 2001, 02:05 AM

> Midas (by.. uh.. I don't remember)

Petteri Kangaslampi.


July 19, 2001, 03:01 AM

A cow with six legs?


July 19, 2001, 03:07 AM

Hey there!

Nice Job.. Do you use MFC?
I'm 16 now and started working on a Leveleditor back when I was 15 (in dev for about 8 months now)... I guess in a few months it'll be as far as yours.. you can actually look at some screenshots here.

I'm workin' on a team with 2 programmers, the other guy is programming the engine, so I don't really have to worry 'bout that. (But we DO talk about diffrent engine issues hehe)..

I choosed OGL over D3D first off all because I knew OGL and 2nd because I was/am running on NT 4.0 which means no Direct3D for me :o)

'Bout school and programming:... Boy, be happy if you learn something during your Informatic classes... I don't.. I even had to correct my teacher and tell him that indices in C start at 0. (He wrote down a Bubble Sort algo to the blackboard and asked me to tell me why this works.. making mistakes while copying it from a book har har).

Anyway, keep the good work up!

Phil "HangMan" Aumayr
Rarebyte Programmer

This thread contains 67 messages.
First Previous ( To view more messages, select a page: 0 1 2 ... out of 2) Next Last
Hosting by Solid Eight Studios, maker of PhotoTangler Collage Maker.