Slashdot Mirror


Cube: A Modern 3D Game Engine

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.

43 of 169 comments (clear)

  1. First impressions.... by H3XA · · Score: 2, Interesting

    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

    1. Re:First impressions.... by dnaumov · · Score: 2

      It's not that it's free, it's FUN.

  2. Re:Clarification please? by PineGreen · · Score: 2

    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

    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.

  3. Cube, the game by dnaumov · · Score: 4, Informative

    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".

    1. Re:Cube, the game by G-funk · · Score: 2

      "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.

      --
      Send lawyers, guns, and money!
    2. Re:Cube, the game by SimonKeogh · · Score: 2, Informative

      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.

    3. Re:Cube, the game by fingal · · Score: 4, Informative
      "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...

      --

      The only Good System is a Sound System

    4. Re:Cube, the game by Bistronaut · · Score: 2
      "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.
    5. Re:Cube, the game by Aardappel · · Score: 4, Informative

      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).

    6. Re:Cube, the game by WowTIP · · Score: 2

      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?

      --

      --

      "I'm surfin the dead zone
      In the twilight, unknown"
    7. Re:Cube, the game by Gorgonzola · · Score: 2

      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.


      --
      -- Spelling and grammar errors tend to be a sign of erroneous thinking.
    8. Re:Cube, the game by Aardappel · · Score: 2, Interesting

      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.

    9. Re:Cube, the game by G-funk · · Score: 2

      /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 :)

      --
      Send lawyers, guns, and money!
  4. You lot are useless :/ by Idimmu+Xul · · Score: 4, Funny

    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 :/

    --
    The problem with slashdot is that most of its users were bullied and stuffed into lockers as kids!
  5. Interesting editing mode by theefer · · Score: 5, Informative

    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 ...

    --
    theefer
  6. What is wrong with SDL & Full screen games by nuggz · · Score: 2

    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?

    1. Re:What is wrong with SDL & Full screen games by rneches · · Score: 2
      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.

      --
      In spite of the suggestions and all the tests that I have made, I have not cavato a spider from the hole.
  7. Re:any particular reason... by dzym · · Score: 4, Funny

    We tried to get him to submit his resume to id Software. I dunno whatever became of that.

  8. Re:any particular reason... by Gumshoe · · Score: 2

    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.

  9. Lets Go Old Skool by jj666 · · Score: 2, Insightful

    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)

    --
    [JJ]
    "Insert Dead Smart n Clever Sig Here So I Look Brainy"
  10. I love it... by Corbin+Dallas · · Score: 5, Funny

    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!

    --
    Democracy is two wolves and a lamb voting on what to have for lunch. Liberty is a well-armed lamb contesting the vote.
    1. Re:I love it... by PhoenxHwk · · Score: 2

      Think Quake 3:
      There's some Arena tournament in outer space. Yeah, that's enough plot.

  11. looks nice, but... by Kresh · · Score: 2, Interesting

    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

    1. Re:looks nice, but... by Kynde · · Score: 4, Insightful

      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.

      --
      1 Earth is warming, 2 It's us, 3 it's royally bad, 4 we need to take action NOW
    2. Re:looks nice, but... by Nutello · · Score: 2, Interesting
      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.
    3. Re:looks nice, but... by Kynde · · Score: 2

      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!

      --
      1 Earth is warming, 2 It's us, 3 it's royally bad, 4 we need to take action NOW
  12. DM servers by cobar · · Score: 5, Informative

    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.

  13. whats best way to begin something like this? by PaganRitual · · Score: 3, Interesting

    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 ...

    1. Re:whats best way to begin something like this? by JFMulder · · Score: 5, Informative

      You should first look at NeHe OpenGL tutorials. It will teach you a long way into 3d programming. It's very well written and covers a lot of subjects. Check it out at http://nehe.gamedev.net/. There are a lot of tutorials, and most of them is written in more than one language, so you can learn about using OpenGL even tough C++ is not your favorite language. The are tutorials in C++, PowerBasic... And code for Mac, Windows, Linux, everything! A true gem. This is the best beginners ressource you can find.

    2. Re:whats best way to begin something like this? by x+mani+x · · Score: 3, Informative

      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

    3. Re:whats best way to begin something like this? by tswinzig · · Score: 2

      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!

      --

      "And like that ... he's gone."
    4. Re:whats best way to begin something like this? by moncyb · · Score: 2

      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, OGRE, 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 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.

  14. Not open source [yet] by RinkSpringer · · Score: 2

    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 :-)

    1. Re:Not open source [yet] by codexus · · Score: 3, Interesting

      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.)

      --
      True warriors use the Klingon Google
    2. Re:Not open source [yet] by Ogerman · · Score: 2

      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.

    3. Re:Not open source [yet] by RinkSpringer · · Score: 2

      Not really. Ask anyone to translate aardappel into Dutch, and they'd say potato. Hey, I live in the Netherlands, I know :D

  15. not true 3d by EpsCylonB · · Score: 2, Interesting

    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.

  16. Wouter's progr. languages are way more interesting by Otis_INF · · Score: 3, Informative

    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.

    --
    Never underestimate the relief of true separation of Religion and State.
  17. Hrm by Cave+Dweller · · Score: 3, Funny

    "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.

  18. Argh: Quake is seriously outdated by Junks+Jerzey · · Score: 4, Informative

    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.

  19. Reality is, if you're relying on the clients... by Svartalf · · Score: 2

    ...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.

    --
    I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
  20. Re:Argh: Quake is seriously outdated by reflective+recursion · · Score: 2

    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.

    --
    Dijkstra Considered Dead
  21. Re:thanks for the help. by JFMulder · · Score: 2

    The reason why I didn't go into DirectX stuff is mainly because I don't know much about it. But from what I've seen in some college course, it has a lot of fluffy stuff and initlization routines you have to go through before drawing even a single pixel in Direct 3D and DirectDraw, while in GL you create a window, create a GL context, bind them, and you're ready to go.

    If you don't want to start from scratch, Direct3d has 2 modes : immediate and something I think is called retained mode. Retained mode is basically a basic 3d engine with notions of meshes, lights, directions, parent/child space, that sort of stuff, already implemented and is great for beginners. It can even load .x files, which you can create with 3DS Max and then convert to .x with a utility that comes with the SDK. You don't even have to care about model loading, isn't it great? Or of course you can get dirty and play with the immediate mode which achieves the same purpose as OpenGL does, but with a totally different system, which, as Carmack once put it "is broken, but still works."

    For the sound though, you will have to go with DirectSound, since it's the best way to make audio on Windows. You might want to look for OpenAL, if you want to do cross platform stuff. It's the OpenGL for audio, hence the AL. I'm not sure though that the standard is set in stone. You should check that out.