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.
First impressions.... (Score:2, Interesting)
I wonder how well it handles high polygon counts or is the empahsis more on engine ability rather than model design for now?
- HeXa
Re:First impressions.... (Score:1)
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.
Re:First impressions.... (Score:1)
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.
Re:First impressions.... (Score:2)
Clarification please? (Score:1)
This doesn't really sound like a *good* thing to me. Can somebody with a little more technical knowledge explain how this is advantageous?
Re:Clarification please? (Score:1)
Re:Clarification please? (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 [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.
Re:Clarification please? (Score:1)
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.
Re:Clarification please? (Score:1)
any particular reason... (Score:1)
Re:any particular reason... (Score:4, Funny)
Re:any particular reason... (Score:1, Funny)
[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
Re:any particular reason... (Score:2)
Re:any particular reason... (Score:1)
We'll probably find out that Cube is written in False or PIG. Thats probably the reason its not open source..
Cube, the game (Score:4, Informative)
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".
Re:Cube, the game (Score:2)
Just my
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)
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)
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).
Re:Cube, the game (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.
Re:Cube, the game (Score:2, Interesting)
Re:Cube, the game (Score:2)
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
Re:Cube, the game (Score:1)
If you are doing it only for yourself, why releasing it at all?
Re:Cube, the game (Score:1)
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. 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.
Re:Cube, the game (Score:2)
Re:Cube, the game (Score:1)
-1, Overly Cynical
Re:Cube, the game (Score:2, Informative)
Re:Cube, the game (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?
You lot are useless :/ (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 :/
Re:You lot are useless :/ (Score:1)
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?
Interesting editing mode (Score:5, Informative)
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
Re:Interesting editing mode (Score:1)
sounds like the wall of bone spell in diablo2.
Re:Interesting editing mode (Score:1)
Re:Interesting editing mode (Score:1)
What is wrong with SDL & Full screen games (Score:2)
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?
Re:What is wrong with SDL & Full screen games (Score:1)
Re:offtopic (Score:1)
Yet, one of the very first things Cube's Readme says is:
'note well: the engine is still in beta stages, and also VERY different from any engine you have seen before. Failure to read the documentation in its entirety may cause you to:
* miss out on the cool features.
* run it in an unoptimal way for your system.
* conclude it "sucks" prematurely.'
The -t option can be found simply by following the first link in readme.html, clearly labelled with "config: on running the game and configuring it for your machine". The link comes even before the blurb I quoted above. It's not like it is buried in an obscure file somewhere.
I usually go out of my way to help people and whine a lot myself when there's missing, cryptic or misleading information, but in this case it definitely would have taken less time for the original poster to just look at readme.html than to post on Slashdot (at the very least he had to wait the infamous 20 seconds).
Re:offtopic (Score:1)
Re:What is wrong with SDL & Full screen games (Score:1)
Re:What is wrong with SDL & Full screen games (Score:2)
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.
Is anybody else... (Score:1)
Anybody know the answer?
Re:Is anybody else... (Score:1)
Re:Is anybody else... (Score:1)
Re:Is anybody else... (Score:1)
The CPU is more than adequate, you might even find it spends some time idle. First of all I'd check the OpenGL drivers.
Re:Is anybody else... (Score:1)
Hope that helps
Re:Is anybody else... (Score:1)
You neglected to also say what O/S You use
Re:Is anybody else... (Score:1)
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...
Voxels? (Score:1)
Re:Voxels? (Score:1)
Actually, it's not TOO far off to say it's voxel-based. All of the geometry in the engine is based off of small cubes, which either rise from the floor or descend from the ceiling.
So even though the cubes themselves are polygonal, as are the creatures and what-not, the levels themselves are kinda built on a voxel-like concept.
Lets Go Old Skool (Score:2, Insightful)
Re:Lets Go Old Skool (Score:1)
Because the engine is so badly managed you *need* the more powerful hardware to make it playable
Just think if M$ (who of all people would be capable) programmed exclusively in ASM can you imagine how much new hardware would be needed? People would be downgrading not upgrading!
I love it... (Score:5, Funny)
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!
Re:I love it... (Score:2)
There's some Arena tournament in outer space. Yeah, that's enough plot.
Re:I love it... (Score:1)
Try Deus Ex. Meaningful plot development.
looks nice, but... (Score:2, Interesting)
"#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
Re:looks nice, but... (Score:4, Insightful)
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.
Re:looks nice, but... (Score:2, Interesting)
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.
Re:looks nice, but... (Score:2)
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!
Re:looks nice, but... (Score:1)
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)
deskstar.101freeway.com
for at least the rest of the weekend.
Re:DM servers (Score:1)
Aiken.
whats best way to begin something like this? (Score:3, Interesting)
speaking of which
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
replies to my hotmail acct welcome
Comment removed (Score:5, Informative)
Re:whats best way to begin something like this? (Score:1)
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.
Re:whats best way to begin something like this? (Score:1)
Here's a funny quote from DigiBen, of the two admins:
thanks for the help. (Score:1)
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
Re: (Score:2)
Re:whats best way to begin something like this? (Score:3, Informative)
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
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
Re:whats best way to begin something like this? (Score:1)
my 2c.
Re:whats best way to begin something like this? (Score:2)
Step 1: Read all of John Carmack's writings.
Step 2:
Step 3: Create your own 3D game engine!
Re:whats best way to begin something like this? (Score:1)
IDEs under linux (Score:1)
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]
Re:whats best way to begin something like this? (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 [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.
Re:whats best way to begin something like this? (Score:1)
care to recommend an API? wasnt too sure from a quick peek at flipcode.com as to whether it was OpenGL or DirectX aligned
Not open source [yet] (Score:2)
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
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
Re:Not open source [yet] (Score:3, Interesting)
Re:Not open source [yet] (Score:2)
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.
Re:Not open source [yet] (Score:2)
Open source might not be good for a game. (Score:1)
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.
Re:Open source might not be good for a game. (Score:1)
Re:Open source might not be good for a game. (Score:1)
Re:Open source might not be good for a game. (Score:1)
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.
Re:Open source might not be good for a game. (Score:1)
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.
Reality is, if you're relying on the clients... (Score:2)
No security through obscurity (Score:1)
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.
Re:Open source might not be good for a game. (Score:1)
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.
A question... (Score:1)
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)
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.
Wouter's progr. languages are way more interesting (Score:3, Informative)
Check out the page: http://wouter.fov120.com/proglang/index.html [fov120.com].
Re:Wouter's progr. languages are way more interest (Score:1)
Yes TI is great. But it is not without issues outside of the world of functional programming (though most have sensible solutions).
Hrm (Score:3, Funny)
Thats a nice way of saying "It looks pretty and lets you kill stuff". Hehe.
Argh: Quake is seriously outdated (Score:4, Informative)
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.
Re:Argh: Quake is seriously outdated (Score:2)
Re:Argh: Quake is seriously outdated (Score:1)
A note for people with slow FPS rates (for NVidia) (Score:1)
Has anyone figure out how to TURN in the game? (Score:1)
Any ideas?
No, "mouse turning" isnt what I am looking for.
idea (Score:1)
Bad Romero (Score:1)
Re:no rooms over rooms (Score:1)
On the other hand, this engine seems like it was designed for the ULTIMATE Tron cycle game. ;)
Re:BILL GATES OWNS (Score:1)
Re:are you kidding me? (Score:1)