Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Games Entertainment

Cube: A Modern 3D Game Engine 169

An anonymous reader writes "There is a new 3d game engine being developed by Wouter van Oortmerssen (aka Aardappel) that utilizes SDL and OpenGL. It is pretty full-featured already, and is heavily influenced by Quake3." Same guy who did panoramic Quake.
This discussion has been archived. No new comments can be posted.

Cube: A Modern 3D Game Engine

Comments Filter:
  • by H3XA ( 590662 )
    Great effort but not comparable to modern day "eye candy" engines yet.... looks more like a Quake 2 level of geometry with nice colour and lighting ability. Perhaps the adjustable LOD is set on a low level....

    I wonder how well it handles high polygon counts or is the empahsis more on engine ability rather than model design for now?

    - HeXa
    • The reason it reminds you of Quake 2 is that a lot of the textures he used in his sample levels actually are borrowed Quake 2 textures.

      Quake 3's big "cool new feature" is the powerful shader engine, which allows dynamic textures composed of multiple images which move or fade or whatever. They give the map a feeling of "liveliness" - water ripples, health spheres shimmer, jump pads pulse, and so on. Coming up with textures to draw is independent of actually drawing geometry, so a similar system could be added to the Cube engine.

      The adjustable LOD is an idea that's used in the Unreal engine, and it's what allows Unreal to render huge open spaces like canyons that the Quake engine couldn't even hope to attempt. In Unreal, actors (monsters, pickups, etc.) seen at a distance are drawn with fewer polygons, making them render faster. AFAIK the map geometry itself isn't affected, but in Cube it sounds like it is. The author did say, after all, that it's a "landscape-style engine" that just "pretends to be an indoor first person shooter engine".

      Personally, I think this is really cool and we'll be seeing more of it in the future.

      • The reason it reminds you of Quake 2 is that a lot of the textures he used in his sample levels actually are borrowed Quake 2 textures

        bzzzt... all textures that are part of cube are 100% non commercial, made by authors like Sock and Iikka Keranen. Some of them may look similar to the "base" style of quake2, but they're not copied.

  • "Most of the engine design is targeted at reaching feature richness through simplicity of structure and brute force, rather than finely tuned complexity."

    This doesn't really sound like a *good* thing to me. Can somebody with a little more technical knowledge explain how this is advantageous?
    • It is based on the fact that old 3D engines where CPU intensives, then need more complexity to reduce the needed calculation power. Now as the video card does a good chunk of the work, we can reduce the complexity and let do the hard work by the video card...
    • Well, it can be advantageous.

      You can really optimize your code to work on low-end machines with a reasonable fps, but this recquire a lot of trickery, precomputing everything, and making difficult design decision what fits where. A good example of such design is Crystal Space [sourceforge.net]

      On the other hand, you can keep your code very simple, which makes it easibly extensible and wait for one year if you want to make it work on low-end machines.

    • Simplicity of structure means that you don't need a fast CPU and allows cool things like realtime editing (other engines require you to "compile" your maps - Cube also lets you edit maps with other users on the Internet). That "brute force" means that it relies a lot on a fast GPU.

      In other words, the real bottleneck with Cube is the graphic card and its OpenGL implementation, not the CPU. As long as you have decent OGL drivers and something relatively recent like a GeForce 3-4 or a Radeon, even a CPU under the GHz mark should be more than enough.

      Slightly unrelated, but given Aardappel's background, OF COURSE there is a powerful scripting language built-in.
    • its advantageous because the code is simple and more maintainable and it doesn't rely on any clever tricks that few people would understand. it also means that the code is more generic and can be adapted for many situations.
  • that this guy isn't already working for id?
    • by dzym ( 544085 ) on Sunday July 28, 2002 @07:58AM (#3967157) Homepage Journal
      We tried to get him to submit his resume to id Software. I dunno whatever became of that.
      • by Anonymous Coward
        [12:43] <@arioch> http://slashdot.org/comments.pl?sid=36886&cid=3967 157
        [12:44] <@arioch> I dunno why my comment got +1 funny
        [12:44] <@locust> well, aard is reasonably accomplished
        [12:44] <@Afterglow> because you are a walking joke
        [12:44] <@locust> and you're posting on slashdot
        [12:44] <@locust> as a slashdot poster, the odds of you knowing anyone accomplished are slim
        [12:45] <@arioch> rofl
        [12:45] <@locust> so odds are you're joking, rather than making a genuine statement
        [12:47] <@country_boy> simpler explanation: slashdot is full of mongers
    • As of a few months ago, he was working with Amiga in some capacity creating the Sheep language. Any old Amiga users out there might remember AmigaE which Wouter also created.
  • Cube, the game (Score:4, Informative)

    by dnaumov ( 453672 ) on Sunday July 28, 2002 @07:43AM (#3967140)
    There's more to Cube then just the engine. It makes for a very nice game. It currently has deathmatch, deathmatch-sp and primitive sp. Try the deathmatch sometime, it's very fun. The engine itself is actually developed by 2 people, Aard does all the main stuff, while the other guy does the networking and the porting to *NIX platforms.

    There is also a very nice community of people developing maps for Cube, Aard is rather open-minded, so every new Cube release also tends to include at least several new maps. The game engine is not currently open-source, however, Aard plans to open-source it in "some time in the future".
    • "some time in the future" sounds to me like "if I can't sell it to somebody first"

      Just my .2c

      I started the d/l before I read there's no sources, which is a shame I was kinda looking forward to having a look at such a small project with such a nice output. Seemed like a good place to do some simple bot programming.
      • Re:Cube, the game (Score:4, Informative)

        by fingal ( 49160 ) on Sunday July 28, 2002 @08:35AM (#3967209) Homepage
        "some time in the future" sounds to me like "if I can't sell it to somebody first"

        or when I am sufficiently happy with the internal data structure of my code that it is not going to go through any major structural changes and therefore has an API that is interesting to link to...

        • Re:Cube, the game (Score:4, Informative)

          by Aardappel ( 50644 ) on Sunday July 28, 2002 @01:54PM (#3967980) Homepage
          I guess its hard for both open & closed source fanatics to understand what I am doing with cube w.r.t. to the source.

          No, I am not trying to sell it (cube is a fun little engine, but it lacks 101 features to be commercially viable).

          No, I am not an Evil Closed Source Person. If you look at my homepage you'll see all my other projects come with source code (mostly GPL). If you read the cube docs, you'd see there is a plan to release the sources (BSD/ZLIB).

          and no, the code doesn't require major restructuring / cleanup before it can be released. The exe size on win32 with "mimimize code size" is 80k or so, I am sure everyone will agree that given the feature set there is not a lot of fat to trim.

          My motivation for not releasing the source yet is that cube is purely programming fun, and I have very particular coding/design ideas (minimalism) which I don't trust others to follow (yes, very arrogant, but its my code, deal with it).
          • First of all, it is your code indeed, so there is no reason to hold you accountable for your licensing decisions.

            Having said that, what about keeping an official tree that is up to your minimalistic standards and rejecting any patches that don't meet them? Let the infidels have their own forks, you will be the one maintaining the canonical version.


            • Re:Cube, the game (Score:2, Interesting)

              by Aardappel ( 50644 )
              I know that is the way to go. Just right now I don't want the hassle of arguing with lots of people why I won't accept their 3 megabyte lensflare patches. Not a lot of point running an open source project if you are going to reject almost all patches anyway. When this goes open source, forking will be the only option for people that want to add changes.
              • /me ducks barrage of flames from my earlier post ...

                Perhaps instead of running an open source project, simply allow a gpl source download with a "don't call me i'll call you" disclaimer, and like the ahteos guy just let everybody know you're not taking patches?

                I'm not calling names or anything, and I'm not pro-open source or pro-closed source, I just like to look at behind the scenes on cool projects, and this looks to me like a cool project :)
          • That doesn't explain why not releasing the source just now. Poeple wanting more features could fork it (actually, not very likely...); and people following your approach may still be "useful". Where is the Problem?

            If you are doing it only for yourself, why releasing it at all?
      • "some time in the future" sounds to me like "if I can't sell it to somebody first"
        You obviously don't know Aardappel. He's been known to release sources, as he did with his E compiler. And guess what, it really was "some time in the future", i.e. when he had pretty much stopped making changes to it. Cube is still a work in progress and I bet you won't see the sources until it "stabilises", after a few more releases. I.e., when he is satisfied with it. You might not agree, but that's his code after all.

        And no, actually he doesn't even think it would be appropriate using in a commercial project, as it more or less deliberately lacks some bells and whistles. It's just something that he wanted to do for fun, his way and mostly on his own, simply for the sake of it. I know because we talked a lot about this stuff.
        I started the d/l before I read there's no sources, which is a shame I was kinda looking forward to having a look at such a small project with such a nice output. Seemed like a good place to do some simple bot programming.
        Do not despair. In the meantime, I suggest you start looking into the built-in language. It's quite powerful, I've been experimenting with it for advanced mapping purposes. And if there's something that it can't do for you (scripted AI?), ask Aardappel nicely and he might add it.
      • "some time in the future" sounds to me like "if I can't sell it to somebody first"
        Give the guys some slack. It's perfectly reasonable to want to polish a few things before they open-source it. I'm sure it's worthwile to make your code easy to grok and build up some fanfare first. That way you keep more of the curious coders who check it out initially.
      • "some time in the future" sounds to me like "if I can't sell it to somebody first"

        -1, Overly Cynical

    • Re:Cube, the game (Score:2, Informative)

      by SimonKeogh ( 181327 )
      Ack, very primitive sp I'd say. I just keept running out of ammo and dying. The stupid maps start with mosters running at you. However, I like the idea of plenty of mosters, it kinda reminds me of doom.
      • Well, you can't really blame the game engine for that, can you? I checked it out and found it quite impressive. Guess some really determined mod guys could make something very cool out of this, when it is OS:ed...

        And you do know that you can change the difficulty level, right? ;)

        It would be cool to try it out MP, but all the MP servers seems to be /.:ed. Any more servers anyone?

  • by Idimmu Xul ( 204345 ) on Sunday July 28, 2002 @07:57AM (#3967154) Homepage Journal

    I've managed to download the game in under 30 mins with a 56k modem!

    I remember back in the day, when all this was fields, real men programmed in Cobol and simply uttering the phrase Slashdot Effect was enough to make any sane SysAdmin turn into a gibbering puddle of jelly and spend the rest of his life in rehab :/

    You kids nowadays with your fancy broadband, useless :/

    • real men programmed in Cobol

      Correction: real men drove their pickup trucks to the woods and shot their dinner with a very large rifle. real programmers programmed in assembly language.

      Who in their right mind would write a game engine in COBOL?
  • by theefer ( 467185 ) on Sunday July 28, 2002 @07:57AM (#3967155) Homepage
    The main interest in this engine is, I think, the editing mode. It's simply amazing. Anytime you want while in game (I suppose not during a deathmatch though), you just press E and enter the editing mode.

    You can raise/lower small cubes (or group of cubes) with the mouse scroller, etc. Everything can be built this way. It's both easy and powerful, requires no compilation (press E again and play) and works really well !

    The graphics are far from ugly, I'd say the game is rather pretty. It works well under linux, which is a good thing too.

    But you really have to try this editing mode ;-)

    Let's hope the engine will be open source ...
  • I have 1 beef with full screen games.
    I can't switch back to X.

    I like linux because it multitasks, and multitasks well. Stable and I can leave it going with all my applications right were I left them.

    Then I play a game, I can't pause it and switch back to grab a phone number, check a calendar, I'm stuck.

    Why can't they simply put the game in a window, or leave some way to flip back to X?
    • Start a second X webserver. I do it all the time to play Q3 et al. and be able to switch to my desktop with ctrl+alt+f(x)...
    • Well, I've got a proposition for you.
      • Check the source out of CVS
      • Hack together something that lets you work around your window manager's key bindings.
      • Post your patch to the SDL mailing list
      So what if you're not a big-time programmer? Read the documentation, the man pages, and the FAQs. If you still need guidance, politely solicit assistance from the appropriate SDL mailing list. If you're coherant, polite and willing to learn, you will find that people will help you. I can't overemphasize how important it is to communicate like an adult. Every project wants helpful, compotent and motivated developers. Make it your goal to become such a person, and you'll receive a remarkable amount of help. (In contrast, if you whine and bitch on the mailing list, you will be ignored at best.)

      Yes, your first patch will probably suck. Big deal. Think of it as a "proof of concept." If it turns out to be a Good Idea, someone with more experience may clean it up a bit. Maybe that someone will be you, assuming you keep hacking. If all goes well, then your patch will be included in a release. Put it on your resume, pat yourself on the back, and enjoy gaming on your platform of choice.

  • ...Having problems? I get 9fps, on my p3 1g with a gf2mx, and that ain't right! Running in XP

    Anybody know the answer?
    • Running a 1ghz Duron with a gf2mx based chip, hitting no lower than 58 fps... although, I'm running 2k... sounds like you've got a problem somewhere there...
    • I get 60fps on an Athlon 1.1GHz with a GeForce4 Ti4400... looks nice to me :)
    • What resolution?

      The CPU is more than adequate, you might even find it spends some time idle. First of all I'd check the OpenGL drivers.
    • You mention you are running XP. The default XP drivers for geforce cards are useless - make sure you download the ones from nvidia and you should notice a MASSIVE increase in speed. If you have done this then the problem lies elsewhere (duh :)

      Hope that helps
    • Sounds like somehow you're using Software GL.

      You neglected to also say what O/S You use :-)
    • RH Linux 7.1 on a Celeron 533mhz 128mb with a GF2 MX400 64mb at 24bit running between 69fps and 109fps - wow. Neat engine - wayyyyy better than my cheasy little engine.

      9fps is seriously bad - check your configurations, drivers, SDL versions, etc...even for Microsoft, that's real bad. I think enough people on MS chimed in that they're getting good fps.

      Good luck...
  • What makes this different then a Voxel engine?
  • Lets Go Old Skool (Score:2, Insightful)

    by jj666 ( 568976 )
    All I want is an efficiently programmed game that's small in size so I don't need another hard drive to install it. Unreal Tournament in ASM - 20MB and faster than a cheetah riding a rocket, lovely :o)
  • by Corbin Dallas ( 165835 ) on Sunday July 28, 2002 @08:36AM (#3967211) Homepage
    If for no other reason that the game's storyline. From the docs:

    Official game storyline: "You kill stuff. The End."

    Finally a first person shooter that doesn't try to beat me over the head with hours of meaningless plot development!
  • looks nice, but... (Score:2, Interesting)

    by Kresh ( 32951 )
    quote from the "most wanted feature" forum:

    "#267: ..

    by Gom Jabbar on 07/20/2002 14:46 through 217.4.101.162

    There won't be room over room. At least not within the next 10 years..."

    sounds like doom 10 years before

    • by Kynde ( 324134 ) <kynde@[ ].fi ['iki' in gap]> on Sunday July 28, 2002 @10:05AM (#3967346)
      There won't be room over room. At least not within the next 10 years...

      Geez, 2D projections to 3D again?

      Why was this interesting news item? It's not open source, it's like Doom with enhanced lighting, but not even enhanced enough, since it's vertex based (although fine grained). Just because it's built on top of SDL/OpenGL doesn't count for much, because there are numerous such projects out there, sadly none of them have gotten much wind under their wings. GPL'd 3D engine that gets masses moving is what I'm anxiously waiting for.
      • by Nutello ( 132201 )
        Why was this interesting news item?
        Name another engine with realtime and cooperative editing. And if you think you can do better, go ahead and write that "GPL'd 3D engine that gets masses moving".

        You are seriously missing the point, anyway. Cube doesn't want to be the ultimate, perfect engine with a ton of features. It doesn't want to please everyone, either. It's an attempt to do things in a certain way, out of intellectual curiosity. Don't you ever wonder "well, what happens if I followed THIS one approach thoroughly?". What matters the most is where you end up and what you learnt in the process.

        Yes, just for the sake of featuritis you could do things differently if you really wanted to, but then it wouldn't be the same exercise. You would be missing the initial point altogether... pretty much like asking why that fuel-efficient car can't do 0-100Km/h as fast as a BMW does.
        • You are seriously missing the point, anyway. Cube doesn't want to be the ultimate, perfect engine with a ton of features.

          And you haven't played loads of 1st person games either if that's what you think about no room over room.

          Doom was 2D world projected into 3D (meaning it was only DRAWN as if it were 3D), it had no actual height in it.

          Writing any "3D engine" these without 3D space in the world that it shows is pointless. 3D cards and processors are fast enough.

          Yes, I do give credit to what he's accomplished with the lighting and all, but 2D world does not cut it.

          It's not about the visual looks, it's about the manouverability inside the world that 3D engine tries to represent!
      • Indeed, it sounds like a slightly more complex build engine [advsys.net]. Even Quake I could do room-above-room, it's got features like an enhanced DN3D. (except real 3d models)

        and you can tell from the screen shots. Nice colors, but no holes anywhere. Look for a railing with open space above and below it, or a bridge. (which I believe they had on the first level of Quake 1)
  • DM servers (Score:5, Informative)

    by cobar ( 57479 ) <maxwell@101freeway.com> on Sunday July 28, 2002 @08:50AM (#3967233) Homepage
    For anybody that's interested in trying out the multiplayer, I have a server running at:
    deskstar.101freeway.com

    for at least the rest of the weekend.
  • looks pretty cool, but it does look kinda like a prettier version of that old 'chasm' game ... or quake 1 i suppose ... not to be critical, i loved both of those games ... and im in no place to be critical because i cant even do anything remotely this good ...

    speaking of which ... what would be the best way to start on a project like this, say 3d enigine, from a beginners level? i know that a 3d engine isnt even something you consider from a beginners level, but this is what i would like to be looking at doing some time in the future ... any one care to share how they got started on game programming? what would be the best plan of attack? or is it just a matter of sitting down with a C++ book, then a visual C++ book (or could anyone tell me what other avenues i might look at with regards to IDE, including under linux), then a game programming book etc etc??? and are there specific websites, examples, source code that i should be checking out???
    ive wanted to do game programming for ages, but ive never pulled my finger out and sat down and got into it, but now that the new version of the stupid accounting software i code at work has gone gold, i wanna clear my brain of VB and get down and dirty into some serious (and entertaining) coding ... any useful advice would be most welcome ...

    replies to my hotmail acct welcome ...
    • Comment removed (Score:5, Informative)

      by account_deleted ( 4530225 ) on Sunday July 28, 2002 @10:46AM (#3967418)
      Comment removed based on user account deletion
      • As well as NeHe, the guys over at Game Tutorials have quite a few OpenGL tutorials (which nicely complements NeHe's). Their site is at http://www.gametutorials.com/ [gametutorials.com]. They also have tutorials on how to program in C++, C, DirectX, Win32, and using Visual C++ (if you are into that kind of thing 8).

        You also might want to read some of the good articles at Gamasutra (http://www.gamasutra.com [gamasutra.com]) as they have good game related news and articles. The registration is free and gives you access to all of their articles and web lectures.

        You can also read some of the articles at http://www.gamedev.net [gamedev.net], http://www.flipcode.com [flipcode.com] and there is a good resource for stuff like this at http://www.angelcode.com [angelcode.com]. These are just some of the best sites I have found. Hope that helps.
      • I've learnt the basics of OpenGL with Nehe's Tutorials. It was ok. Then I found GameTutorials [gametutorials.com] which is, IMHO, far superior. The tutorial code is much better and as easy to understand, and it does have a ton of tutorials covering basics to advanced topics (BSP trees, Volumetric fog, Q3 models animations, etc.) Almost all tutorials are ported to SDL.

        Here's a funny quote from DigiBen, of the two admins:

        I was just looking over the OpenGL tutorials and I want to ONCE again throw out my gratitude for the sweet SDL ports that Golem and EvilSmile have compiled for us. There is only like 20 more, if that before they are ALL! done. I was going to then go and post our site on SlashDot once that is done, which I hear TRASHES web sites because of all their hits. So once those are done, or near done, prepare for some huge publicity and a bunch of crazy linux users to start pouring in :)
      • cool, looks like i have enough stuff there to keep me going for a while ... thanks for all the links/ideas everybody, and for the blatant BlitzBasic spam hehehe (joke) ;) interesting that i dont think anyone made mention of the directX sdk etc etc ... although i guess i do have to remember that this is /. hehehe :)

        just to give the full pic for those who like to read a bio, i actually have a CS major which i finished 3 yrs ago, and i am two third year maths topics short of making it a CS/MATH double major (which i plan on going back and doing at some point in time), and a fair bit of C++ experience (i wrote my own text based blackjack program at uni on the unix machines, and then 'ported' it to DOS) and tinkered with it at a graphical level in DOS (good old Black Arts of 3D Game Programming book), but had a major issue with some sort of pointer array which ended up with me putting a stop to the whole thing ... and i have been a VB programmer professionally (i dont think those words go together but whatever) for the past 2 yrs or so, and VB tends to let you be a very lazy programmer, and MDI form accounting software is just ridiculously easy to the point of tedium, so before i go senile from VB infection (yes, thats a B, not a D, its a lame joke, i hope you enjoy it) :) at the ripe old age of 25, i would like to get back into what i originally had planned, which was C++ game programming ... wish me luck (*walks off into the sunset, cue campy tear-jerking music*)
    • Note: I am not a game programmer, but I am a programmer with some very basic knowledge about game design.

      what would be the best way to start on a project like this, say 3d enigine, from a beginners level?

      Use a really high level graphics API, so that all the gritty details are hidden from you. OpenGL is IMHO very low level in this context. SGI's Open Inventor sounds about right, but there's probably better API's out there for games.

      any one care to share how they got started on game programming? what would be the best plan of attack? or is it just a matter of sitting down with a C++ book, then a visual C++ book (or could anyone tell me what other avenues i might look at with regards to IDE, including under linux), then a game programming book etc etc???

      I suggest that before you start getting into game programming, start with seperately writing little programs to tinker with different aspects of game programming, like writing a screensaver (mostly graphics work, you can throw in a little AI, but there is no user interaction so it makes it much easier for you). Once you know your favorite language's syntax in and out, and you know how to attack/avoid the typical design problems you will no doubt encounter in game design, you can start thinking about design a game/engine.

      You're on the right track in terms of reading books. But it is definately not a matter of getting a C++ book, then getting a video game book, and going at it. Designing games involves a lot of things other than drawing graphics. You will need to be familiar with physics, human perception, collision detection, artificial intelligence, and many other things. For most people, this (at least!) means having taken a major in CS and/or CE and/or EE and/or Math (pick one). A game programming book will summarize some of these topics, but unless you dive head first into, for example, AI, your understanding of it will be very shallow.

      and are there specific websites, examples, source code that i should be checking out???

      I believe the Quake2 source has been released. Download it and read it. I'd recommend you start by hacking the code to add in your own features to the game as a first step to understanding it. Run it through a debugger to get a feel for how the game works (I have a feeling debugging quake2 in gdb or ddd would be extremely painful -- try to get your hands on Microsoft's Visual C++ debugger, it blows away anything on Linux and even Workshop on Solaris).

      ive wanted to do game programming for ages, but ive never pulled my finger out and sat down and got into it, but now that the new version of the stupid accounting software i code at work has gone gold, i wanna clear my brain of VB and get down and dirty into some serious (and entertaining) coding ... any useful advice would be most welcome ...

      Game programming is really, really hard. Much harder than you think. However, I hope I haven't discouraged you. If you feel motivated to do it, then don't let anyone stop you! Just know that it will take an insane amount of hard work and study (I'm talking on the order of years, not days, weeks or months) to get even a mediocre game or game engine out the door. :)

      Good luck,
      -Mani
    • what would be the best way to start on a project like this, say 3d enigine, from a beginners level?

      Step 1: Read all of John Carmack's writings.
      Step 2: ...
      Step 3: Create your own 3D game engine!

    • I like to use anjuta [sourceforge.net], an IDE built on the GNOME libraries. A friend of mine was complaining that there were no IDEs in Linux that could compete with MS Visual Studio. I showed him anjuta, and he dropped the argument :) You can check it out at http://anjuta.sourceforge.net. [sourceforge.net]

      Apparently some people swear by kdevelop [kdevelop.org] which, as you may be able to tell, is a KDE application. I haven't used it much personally, but you might want to check it out at http://www.kdevelop.org [kdevelop.org]

    • I am not a game programmer, but I have a few suggestions that may help out:

      I don't know how much programming experience you have, but from what you said, it seems you only know some Visual Basic. You may want to start with a good high level language then move to C/C++. How about Java? If you learn it properly, it should teach you good object oriented programming techniques--plus it has some similarities to C++. Python may be a good contender as well, however I haven't done much with it, so I can't say. I heard both those languages have OpenGL interfaces. They allow you to link with C, so you can ease your way into C/C++.

      You may want to check out Crystal Space [sourceforge.net], OGRE [sf.net], and other open source game libraries/engines. They could be a good stepping stone to building your first game.

      You may want to learn some assembly language. You probably won't write entire programs in it, however at times you may need to optimize certain parts of your code. In addition, it can help you understand how the compiler/CPU interprets the code and how to make it run faster. I'm not sure of a good book/site to learn assembly--most of my info about it is outdated. Going to the processor manufacturer's sites will give you documentation for the instruction sets at the very least.

      When you look at the assembly info, make sure you learn the MMX instructions. They should speed up your game code in some situations. MMX macros for C also exist too--I thought there was one called libMMX. I can't seem to find it now.

      Usenet can be a good help too. The comp.graphics.algorithms FAQ [faqs.org] has lots of information.

      It would also be a good idea to learn as much as you can about math and physics like the other poster said. I recommend Technical Mathematics with Caculus by Paul Calter--it goes from very basic math all the way through caculus. As for physics, I don't have any suggestions, however the Calter book does touch on some physics concepts.

  • A quote from the page:

    The source code for Cube has not been released yet, because Cube is for me a purely fun programming project with a very minimalistic style of design & implementation, and I want to keep all the fun to myself :) It will be open sourced in the future, under a license similar to BSD/MIT/ZLIB etc

    Such a shame, I'm sure some people out here would want to help this guy make his stuff...

    On the sidenote, Aardappel is Dutch, and it literally means potato :-)
    • Yes, but I understand his decision. He doesn't want to be the leader of a community project where he would do more management than coding. He wants to code his own engine for fun. Open-sourcing too early would not help and might result in problems. This reminds me of phpNuke which eventually forked and AtheOS (I'm not sure if it forked but I know the author wanted to continue do most of the coding himself and was concerned about a fork he didn't want.)
      • Yes, but I understand his decision. He doesn't want to be the leader of a community project where he would do more management than coding. He wants to code his own engine for fun. Open-sourcing too early would not help and might result in problems.

        Sorry, but that's a BS argument. Just because the source is available doesn't mean you have to accept patches to your pet project. And if somebody takes your code and forks, who cares?! Just be sure to protect your efforts with GPL so nobody can free-ride with commercial proprietary forks. More likely, this guy is unsure if he's ever going to release the source--which IMHO is silly because there's no way he can compete with the 'big boys'. He should release the source and sell artwork/levels/etc. Then it'd be more than just another no-name game company with mediocre products. Source code is insurance of community, therefore a market.
  • This isn't a troll, far from it.
    While I agree that Open Sourcing is a better way to go with Operating systems and Applications it shouldn't apply to games that are going to be played over the internet. It gives l33t h4x0rs and script-kiddies an instant referance to help them in cheating. SDKs are bad enough(but at least theses take some time to work with) but the entire source would cripple any hopes of playing a fair game.
    The saddest thing is that this looks like a really interesting project and from what I can gather from people who have it already the games engine is pretty flexable and innovative, if cheaters didn't exist then I would support open-sourcing every game under the sun but sadly I can't. Sad day.

    • Well, on the surface I agree with you, but there are ways to write the code such that cheating is impossible, such as server-centric data, or at least server-side bounds checking (hey -- that sprite shouldn't be able to jump that high!). I think we really need to foucs on better coding strategies. Actually, I feel that this applies to software engineering as a whole -- we need to rethink the existing paradigms, and build new ones from scratch, based on what we now know!
    • In terms of cheating with the source, I don't believe that the game that comes with this engine is really supposed to be that big of a deal - it's more of a showcase for the engine itself. The problem would be in the future, if full fledged games came out using the engine. But, I personally believe that the ideal engine would be able to still prevent cheating, even with people understanding the cheat-prevention mechanisms. It would be like the ideal encryption- even if you know the algorithm, the code should still be unbreakable without the key. That has always been a very difficult thing to obtain, however. On a side note, if someone DID hack the game, that would be have to be some sort of milestone for the developers, right? You're not big-time until you have cheaters!
      • In terms of cheating with the source, I don't believe that the game that comes with this engine is really supposed to be that big of a deal - it's more of a showcase for the engine itself.

        Sorry, wrong assumption. One of my goals was to keep the engine ultra-simplistic, so I would actually manage to spend time on the parts I find interesting, such as the in-game editing and the multiplayer & single player gameplay. Yes, cheating is a problem, especially for cube since a lot of the gameplay code runs (authoratively) client side. There is a lot that can be done in terms of checking though, but I fear that if someone builds a multiplayer oriented game off this with a significant community, it will have to be closed source again.

        • Goodness. Consider me completely corrected. This engine is certainly streamlined, and fascinating. I feel like there is a game to be built on it implementing the in game editing function- Tron cycling would be a perfect fit, for example.

          But there are a lot of other possibilities for the real time deformation aspect. DM in a maze, controlled by a maze-master, or a just a general universal terrain master, opening up doors and creating walls at their leisure while everyone else blew each other away.

    • ...the game can be hacked. Source doesn't make it much easier from what I can see- there seems to be enough hacks and "trainers" out there for the games out right now. These cheating tools end up showing up fairly quickly after the game comes out and so far, all of these games are closed source. Simply put, securing things is a difficult proposition at best (curtailing performance, etc.) if you rely on the client side being clean, etc.- having source only makes it slightly easier.
    • Open Sourcing is... an instant referance to help them in cheating.

      If the game code were open source, it would be possible to add security that actually worked. The chances that a cheat would be found by l33t h4x0rs would go down as many eyes would have had a chance to really close the holes.

      Even in the event that a cheat were found, the ability to respond quickly would be a plus for open sourcing the game.

    • "While I agree that Open Sourcing is a better way to go with Operating systems and Applications it shouldn't apply to games that are going to be played over the internet."

      Well, it depends on how the game is designed. A well-thought game engine will consider this possibility already.

      In an internet game, the client only needs to render it's version of the game state. The master game state is stored on the server. As events happen, the client is responsible for changing it's version of the game state, as well as notifying the server of a state change. Each client in turn would need to recieve state information from the server. As part of the protocol, the server should be able to query portions of the client's version of the game state and compare with the master game state. If the network communication protocol is designed properly, then it the server that really controls the game. So it really does not matter if the game is open-source, because the client must at least be able to communicate with the game server on the server's terms in order just to play the game online.

      -- Elementary, my dear Watson.
  • Am I the only one noticing this game technically has the same level design as duke nukem or something similar? From what I can see there are no rooms above other rooms... I mean it doesnt look like things can hover in mid air (like bridges).

    I'm not sure about this at all but I played it a while ago and now that I look at the screenshots it doesn't look like it's possible.

    The game is fun and all but is this "A Modern 3D Game Engine" ?
  • not true 3d (Score:2, Interesting)

    by EpsCylonB ( 307640 )
    Still downloading the engine but the docs on the site make for interesting reading. This engine is not capable of having rooms over rooms, in fact the author compares it to doom which is obviously not 3D.

    From reading the docs I think the real innovation here is in the gui which sounds like it has obviously had a lot of time spent on it.

    Having edited with the quake and unreal engines it seems this prog is trying to remove the bar into editing by making editing easy enough for anyone to jump in and play around. A good thing in my opoinion.
  • by Otis_INF ( 130595 ) on Sunday July 28, 2002 @12:01PM (#3967601) Homepage
    He did quite a lot of work on the front of visual programming and came up with a lot of programming languages which are definitely worth a look.

    Check out the page: http://wouter.fov120.com/proglang/index.html [fov120.com].
  • Hrm (Score:3, Funny)

    by Cave Dweller ( 470644 ) on Sunday July 28, 2002 @12:08PM (#3967624)
    "Combines very high precision dynamic occlusion culling with a form of geometric mipmapping [...]"

    Thats a nice way of saying "It looks pretty and lets you kill stuff". Hehe.
  • by Junks Jerzey ( 54586 ) on Sunday July 28, 2002 @01:02PM (#3967801)
    I'm a game developer, and I find it endlessly amusing that internetters love to equate Quake technology with the cutting edge. I guess it begs the question: Do wannabe game programmers and fanboys have any experience with engines that are *not* Quake-like?

    For example, look at the amazing stuff done in high-end PlayStation 2 games. There's no way you could get the Quake III engine to do those kinds of things. And yet everyone fawns all over Quake like it's the only game technology available. In reality, it's just that there's a distinct lack of familiarity with what else is available, much as hardcore Linux advocates don't know about OSes other than Linux and Windows, and don't know much at all about OS history prior to 1991.
    • Erm. I'm curious.. what can PS2 games do that games using Quake3 engine can't? Nearly a year after Q3 was out, games continued to use Q2 engine. I know Q3 isn't much more than Q1 with shaders and lightmaps, etc. But a low-res PS2? Certain things engines are good at and certain things they are not. Q3 is still very good for indoor environments. For outdoor environments it sucks ass. It probably wouldn't be good for a Mario or Sonic type game. I don't doubt there is a better indoor engine. Infact, I know it's name: Doom 3.
    • almost every OS is compared too windows, though you know it's not really great and there are better. Sometimes it's not quality but "well known" that counts.
  • If your FPS is going very slow, as in 9FPS-ish, and you're using an NVidia Card, go to nvidia.com and get the latest video drivers. It fixed the problem for me.
  • Left/right arrows "Strafe", and there seems to be no way to actually TURN into some direction.

    Any ideas?

    No, "mouse turning" isnt what I am looking for.
  • So we got all these hi-dollar video cards that can render cgi movies that takes several machines hours. Why is it so hard for them to make a real physics game engine. Lets not forget the enemies. Why must all henchmen in games look alike. Doom4 will have clones. I mean all this time they spend makeing levels why can't they make about 400 difffernt unique henchmen and 3 or 4 levels. I like variaty. Why can't legs fall off at differnt sections and flesh splatter. Why can't I use question marks. Why can't Model's mouths move when they are talking. Why do i continuiously believe the hype. ... l8r
  • You would think John Romero could think of a better new alias than "Wouter van Oortmerssen (aka Aardappel)".

You knew the job was dangerous when you took it, Fred. -- Superchicken

Working...