As you've seen, orx's only usable with C/C++ right now but in a couple of months C# and Python might also be available.
I'll take this opportunity to give an update on the current status on PyOrx (still not completely sure about the name :P). I think I am going to use Cython, rather than communicating directly with the Python API--that was a horrible experience. Holiday's over, so it'll be quite a few months before I have something to show.
I'll take this opportunity to give an update on the current status on PyOrx (still not completely sure about the name :P). I think I am going to use Cython, rather than communicating directly with the Python API--that was a horrible experience. Holiday's over, so it'll be quite a few months before I have something to show.
PyOrx sounds good to me! Didn't know about Cython, thanks for the link.
See you in a coupe of months, then, glad you're still around!
I've just downloaded Orx today. Sounds very good. I'd like to make a kind of Worms-like game...
This engine is very new but sounds perfect for me, and i'm glad to see that Orx 1.0 has just been released.
Hi peoples!,
I found Orx about 5 months ago, but only now have the time to actually try it out. Figured I'd officially say 'hi' :laugh:
I'm looking at using my weekends to make myself a 'single-player simulation MMO'. Which basically means, 2d rpg style world, filled with AI controlled characters. The player changes the world by giving goals to the characters, rather than 'playing' the characters directly. Crazy, I know :laugh: lets see what I can manage!
I'm a full-time game programmer, 'working for the man' though, so no promises I can make any pretty art.
Single-player simulation MMO? That's an unusual concept! If you need any help so as to get started, feel free to ask on the forum, I'm sure you'll find someone to answer. (If they didn't say hi yet, it's only because they're very very shy, that's all! :P)
Btw, how did you find about orx? I haven't done a very good communication work so far, so my guess would be wikipedia, am I right?
Truth be told, I couldn't tell you how I found Orx, it was many months ago that I did. I keep a huge list of development related resources, which I am constantly expanding when I find anything new, this was amongst my list of 'should look at' engines :laugh: .
As for my 'unusual concept', in a sense that's the point :cheer: . I enjoy world-manipulation games, sim city etc, and I enjoy RPGs with their character advancement and interesting worlds to explore. I think combining the two can work well with a bit of effort.
Of course, I could be utterly wrong, but that's what prototypes are for! :laugh:
Hehe, no problem. I was just curious to see if someone actually landed here after my few attempts on communication on forums such as Tigsource or GameDev ones.
I'm looking forward to see the prototype you'll be doing, unusual concepts can turn out in interesting prototypes. Hope orx will be helpful for you with this task.
If at some point you need any web space to store stuff you've made with orx that you'd like to show, let me know. For now on only Blarg has a private space but I'm willing to provide any orx users with one if they need it.
That sounds like a nice concept to me as well. And I agree, tigsource is pretty awesome. I too have ignored it for too long. As for orx I had a very good experience with it yet, I hope it suits your needs. You might want to check out my project thread while you make your first steps, altough a lot of the problems I encountered have been debugged by iarwain on the fly : )
I did take a look at your thread, interestingly it's that thread, your cool little game-in-progress, and iarwain's quick responses that gave me the push to say 'hi'.
I've been discussing my idea with a friend of mine, and he's helped me come up with a clearer explanation of what it is.
His words: "Simcity crossed with The Sims".
This does a good job of describing the basic concept... World-building is the game-goal, but it's done on a control level roughly between sim-city's "you're in charge, do what you want" and the sim's "manipulate your people so they do what you want", while not being either.
haha now that I think on it, that's probably just more confusing
As for the support, I'll try to stay as reactive as possible, but as a baby is about to arrive in my little family, don't expect fixes on day-0 too much.
And concerning Tigsource, it's a great resource site as is http://www.indiegames.com/blog , if you don't already know this one.
I now have a question for you: would you mind telling us for how long you've been looking into orx, what do you like/dislike about and any other feedback you'd have? User feedbacks is precious and I'm afraid we don't get enough of them.
So here it goes.
I was looking for a gfx library supporting accelerated 2D graphics. Went through pretty much everything on the list that has native C/C++ support, downloaded it and tested provided samples, looked at the code, etc. I decided ORX is what I need for several reasons.
1. No scripting language - no python/ruby/fancy_new_lang lockdown
2. No XML (I'm a strong believer that INIs are easier to edit/understand than XMLs are for so called avg person)
3. Accelerated 2D with little fluff (e.g. no support for 3D models)
4. Pretty good samples
5. Documentation that makes sense and is easy to follow.
6. Native C bindings instead of C++ classes
7. Shader support (well, as it turned out - kinda ;])
8. Code (lib/inc) organized in a way that allowed me to build standalone EXE using ORX in about a minute. (we'll see how easy/hard it is to hack ORX code itself, but based on my experience so far I'm hoping it will be fun too)
At this point I don't care about animation, physics or audio. It's nice they are there but what's even better is that they don't get in the way at all. I wanted something basic to play around with, not another 800 pound gorilla I have to learn for hours to get a Hello World-quality results. INI based configuration is fun to play with and encouraged me to stick to ORX.
Now to the negatives.
1. Per object shaders don't work and that's what I was hoping for the most. The good news is - no other sane library supports that. But that's no excuse. :P
2. I understand why it's good to have multi-platform support, but right now I don't really see any point in maintaining two separate display drivers (SDL/SFML). ORX would IMO benefit from less, well tested code paths. Audio files and images can be easily converted nowadays, there's no need in doing everything for everyone.
3. I was hoping ORX has its own display implementation (not depending on SDL/SFML) and not knowing the truth was one of the reasons I kept playing with it. I would love to see display implemented without external dependencies.
Overall I'm very hapy with ORX and plan on using it.I need per object shaders to work so I'm going to focus on implementing that feature. INI based configuration is too cool to drop ORX and start using something else.
Thanks for taking the time to give such detailed feedback, it's useful for me to know on what I should/shouldn't focus!
I was looking for a gfx library supporting accelerated 2D graphics. Went through pretty much everything on the list that has native C/C++ support, downloaded it and tested provided samples, looked at the code, etc. I decided ORX is what I need for several reasons.
1. No scripting language - no python/ruby/fancy_new_lang lockdown
2. No XML (I'm a strong believer that INIs are easier to edit/understand than XMLs are for so called avg person)
3. Accelerated 2D with little fluff (e.g. no support for 3D models)
4. Pretty good samples
5. Documentation that makes sense and is easy to follow.
6. Native C bindings instead of C++ classes
7. Shader support (well, as it turned out - kinda ;])
8. Code (lib/inc) organized in a way that allowed me to build standalone EXE using ORX in about a minute. (we'll see how easy/hard it is to hack ORX code itself, but based on my experience so far I'm hoping it will be fun too)
Points 1, 2, 3 and 6 are usually turn downs for people who decide not to use orx. I'm glad it's the exact opposite for you! As for the INI, I thought I was the only one left alive in the world one with this preference.
At this point I don't care about animation, physics or audio. It's nice they are there but what's even better is that they don't get in the way at all. I wanted something basic to play around with, not another 800 pound gorilla I have to learn for hours to get a Hello World-quality results. INI based configuration is fun to play with and encouraged me to stick to ORX.
My goal is to provide as many important features as I can for a 2D game engine but keeping the whole thing modular so that people can use only what they need. I have to admit since the config system was added, it made things even more easy. So easy I don't know why I haven't done it before, actually.
Now to the negatives.
Good, that's exactly what I need to improve stuff.
1. Per object shaders don't work and that's what I was hoping for the most. The good news is - no other sane library supports that. But that's no excuse. :P
Yep, hopefully this will be sorted out soon, a way or another.
2. I understand why it's good to have multi-platform support, but right now I don't really see any point in maintaining two separate display drivers (SDL/SFML). ORX would IMO benefit from less, well tested code paths. Audio files and images can be easily converted nowadays, there's no need in doing everything for everyone.
Actually my goal is to support officially one set of plugin per platform. At first I went with SDL but without OpenGL which turned out to be painfully slow when you manipulate bitmaps. I then discovered SFML who helped me having fully working plugins with acceleration and the features I needed in a reasonable amount of time (haven't written any OpenGL code in about 10 years now, so I'm not exactly up-to-date on my knowledge of the library and didn't want to write less-than-average code). Now, the way to go is definitely SDL/OpenGL for me (on mac/linux/windows at least, as iPhone might end up with a totally different set of plugins), and I will support less and less SFML plugins when I'm done.
However, the idea behind orx was that the orx-project.org team would mainly take care of the core and that, in term, the plugins would be maintained by a community. It's still something I want to achieve but the community is far to small to do this right now. But it's ok, I'm a patient man.
3. I was hoping ORX has its own display implementation (not depending on SDL/SFML) and not knowing the truth was one of the reasons I kept playing with it. I would love to see display implemented without external dependencies.
Only the low level functions are deferred to external libraries (like blitting a bitmap). The rendering logic is homemade, in a plugin without any external dependency. The plugin architecture also allows to easily add 3D support if someone feels the need to, without having to change much of orx's internals as orx's core mostly handles abstract data.
I'd like orx to be as easy to use as possible, and with a reduced developper team of 1 for the core as for the last 2 years, I have to prioritize and make compromises. In the end I want also to use orx, not only to develop it, as I plan to make a living out of indie games done with it. That's my escape plan from the mainstream industry before it turns out I've been working there for 10 years. And this milestone is drawing near...
Overall I'm very hapy with ORX and plan on using it.I need per object shaders to work so I'm going to focus on implementing that feature. INI based configuration is too cool to drop ORX and start using something else.
Cheers!
I'm really happy to see that and see your motivation. If at some point you discover that orx is lacking features or anything that will get you less motivated about the project, please let me know as it might be fixed whereas if you don't say anything I won't be able to help. Of course, this works for all orx users.
Points 1, 2, 3 and 6 are usually turn downs for people who decide not to use orx. I'm glad it's the exact opposite for you! As for the INI, I thought I was the only one left alive in the world one with this preference.
You're not. In fact I used to work with people who simply hate XML. It's great in theory and there are cases where it makes sense. But the moment people started storing binary data in XML it was evident that hype is clouding ppls judgement. XML is easy to reverse engineer, but for someone who's only proficient with word processor, INIs are much easier to grasp. Extensions to INI ORX uses are easy to understand yet pretty powerful at the same time. I like it. For me that's the number one reason why I don't want to switch.
3D models should be an easy to add plugin if people feel like it's needed in the future. Scripting language is unnecessary since building ORX based code is super easy and all of the core functionality one would like to tweak can be exposed in INI. Perhaps the importance of INIs should be stressed more? I for one started by looking at the code and only when I realized there isn't any for some of the samples, I started looking at the config files.
Only the low level functions are deferred to external libraries (like blitting a bitmap). The rendering logic is homemade, in a plugin without any external dependency.
I know. I looked at the 37 functions that display plugins have to implement and that's why I think it's possible for me (as in: I don't have to spend my whole life on it) to implement it in pure OGL*) without any dep on SDL/SFML.
*) I'd rather do it in DX, but if I'm going to code something, community would probably benefit more from OGL implementation
I'd like orx to be as easy to use as possible, and with a reduced developper team of 1 for the core as for the last 2 years, I have to prioritize and make compromises. In the end I want also to use orx, not only to develop it, as I plan to make a living out of indie games done with it. That's my escape plan from the mainstream industry before it turns out I've been working there for 10 years. And this milestone is drawing near...
Better do it sooner than later. Indie is getting dangerously mainstream these days.
I'm really happy to see that and see your motivation. If at some point you discover that orx is lacking features or anything that will get you less motivated about the project, please let me know as it might be fixed whereas if you don't say anything I won't be able to help. Of course, this works for all orx users.
I'm trying to convince a bunch of friends to create a pretty simple 2D game using ORX. I have an idea for a pretty neat technology that would make this game stand out in terms of graphics, but I need per object shaders to prototype it. So yeah, back to cleaning up my place and then some more coding.
You're not. In fact I used to work with people who simply hate XML. It's great in theory and there are cases where it makes sense. But the moment people started storing binary data in XML it was evident that hype is clouding ppls judgement. XML is easy to reverse engineer, but for someone who's only proficient with word processor, INIs are much easier to grasp. Extensions to INI ORX uses are easy to understand yet pretty powerful at the same time. I like it. For me that's the number one reason why I don't want to switch.
I totally agree with the XML considerations. As for orx's take on INI, I'm glad you appreciate it. The more I play with it every day, the more tricks I find to make my life better. And by that means less work, shorter amount of dev/debug time to get what I want on screen.
3D models should be an easy to add plugin if people feel like it's needed in the future. Scripting language is unnecessary since building ORX based code is super easy and all of the core functionality one would like to tweak can be exposed in INI. Perhaps the importance of INIs should be stressed more? I for one started by looking at the code and only when I realized there isn't any for some of the samples, I started looking at the config files.
That's what I try to emphasize on when I'm talking of the data-driven side of the engine. However I probably should give small examples to explain it better. I've been wanting to post on some game development forum, but seen the close-to-zero answers I got last time I did such a thing (1 or 2 years ago), I'm not sure it's worth the amount of time.
I know. I looked at the 37 functions that display plugins have to implement and that's why I think it's possible for me (as in: I don't have to spend my whole life on it) to implement it in pure OGL*) without any dep on SDL/SFML.
*) I'd rather do it in DX, but if I'm going to code something, community would probably benefit more from OGL implementation
Some functions are only to be used for low-end architecture such as GBA and DS, so don't bother with all of them (especially the colorkey stuff, etc). As for OGL, it'd be much appreciated as I could in turn benefit from it for the iPhone display plugin, and so would the community.
Better do it sooner than later. Indie is getting dangerously mainstream these days.
So true! I've been wanting to do that since 2002 though. ^^ But lately working on a 200+ team *really* makes me want to do it ASAP.
I'm trying to convince a bunch of friends to create a pretty simple 2D game using ORX. I have an idea for a pretty neat technology that would make this game stand out in terms of graphics, but I need per object shaders to prototype it. So yeah, back to cleaning up my place and then some more coding.
That'd be nice! If you need any help/examples for convincing them, let me know!
I am an indie game developer who has been using the FlatRedBall game engine for the last few years (I recently finished a game with the FRB engine) and am considering moving to a different game engine.
Although I am very pleased with the FRB engine the need for MacOS support has started this search for a new engine.
My next game will be a 2.5d side-scroller. (I'd like the characters to be 2d, the game play 2d, but have the background and the terrain be 3d (boxes, pyramids etc.) or more speifically speaking have a 3d effect).
I read a bit about ORX in the wiki but I have a few questions which I'd like to ask.
Here goes:
1. To create a game for several platforms (specifically Windows, Mac, Linux & IPhone) can I use the same source code or do I need to rewrite the code with a different plugin for each targeted OS?
2. What is the meaning of "no 3d rendering"? Does this mean that you can only place sprites at a 90 degrees angle from the camera? I suppose not but I didn't quite understand.
3. Does the engine use directx? Can it? (For several reasons I prefer using directx graphics over OpenGL)
4. How can I use the engine with C++ code (it is easier for me)
5. Have any 2.5d games used the ORX engine?
Thanks in advance, I look forward to creating games with this engine.
Ogga
I am an indie game developer who has been using the FlatRedBall game engine for the last few years (I recently finished a game with the FRB engine) and am considering moving to a different game engine.
Although I am very pleased with the FRB engine the need for MacOS support has started this search for a new engine.
I didn't know the FlatRedBall engine before today so I went to have a quick glimpse to it. Congrats also for the release of Cubism and best of luck for the sells!
My next game will be a 2.5d side-scroller. (I'd like the characters to be 2d, the game play 2d, but have the background and the terrain be 3d (boxes, pyramids etc.) or more speifically speaking have a 3d effect).
Well, as you'll see later in my reply, 3D effects are easily done whereas real 3D isn't supported yet.
I read a bit about ORX in the wiki but I have a few questions which I'd like to ask.
Here goes:
1. To create a game for several platforms (specifically Windows, Mac, Linux & IPhone) can I use the same source code or do I need to rewrite the code with a different plugin for each targeted OS?
Yes, the same source code will be used on different platforms. However you'll probably have to tweak a couple of things (such as the display resolution, the main function prototype or even inputs depending on which platform you are). That being said almost everything will be accessed through orx's API and 99% of the code will be the same for all the platforms.
2. What is the meaning of "no 3d rendering"? Does this mean that you can only place sprites at a 90 degrees angle from the camera? I suppose not but I didn't quite understand.
Yes, that's it. Orx's world is in 3D, but unfortunately the current available rendering/display plugins are only 2D.
Adding 3D support would be pretty easy but it requires writing new plugins for display and rendering.
That being said, you can display 3D objects/FXs by using the fragment (pixel) shaders.
3. Does the engine use directx? Can it? (For several reasons I prefer using directx graphics over OpenGL)
The only available display plugins (the SFML-based one + the SDL/OpenGL one I'm currently working on) are based on OpenGL and work on linux/windows/mac OS X. The iPhone plugin that will be done in a couple of weeks will also be based on OpenGL.
However, it's totally doable to write a DirectX display plugin for windows. I'll probably have to do it if I want to support XNA at some point. Till then, unless someone contributes for one, there are none, sorry.
4. How can I use the engine with C++ code (it is easier for me)
Very easily by writing your C++ code and calling orx's C code natively. There are two examples in the tutorial (#10 & #11). In a couple of days I'll also release Scroll which is a level-based game engine written in C++ on top of orx.
5. Have any 2.5d games used the ORX engine?
Full games? Not that I'm aware of. Some prototypes have been released (either by me or by community members) and I'm working on private prototypes with different persons that will hopefully lead to full released game in the future.
Thanks in advance, I look forward to creating games with this engine.
Ogga
You're welcome. I'm afraid orx doesn't exactly suits your needs (OpenGL-based + 3D through shaders only), but if you choose to work with this engine, be assured that you'll get as much help as possible as you might already have guessed if you read some threads in the forum.
I forgot to mention it, but if by 3D effect you're looking mainly for differential scrolling (with no limit in the number of planes), orx's render plugin handles this natively using the depth of objects.
Regarding the 3d effect - I think I didn't quite explain myself properly.
What I'm looking to do in that aspect is very similar to the following link (the relevant gameplay starts around 2:15 minutes):
Generally speaking, I'd like to make a platformer with 3d depth (while the gameplay is 2d, the look is 3d).
Can this currently be done using ORX? How?
Thanks again for the quick response. This engine really feels right for me. If my 2.5d platformer is doable I think I'll do it here regardless the lack of directx.
Ogga
Trying my best but luckily I was on my computer when you posted. Generally I try to reply at least within a day.
Regarding the 3d effect - I think I didn't quite explain myself properly.
What I'm looking to do in that aspect is very similar to the following link (the relevant gameplay starts around 2:15 minutes):
Generally speaking, I'd like to make a platformer with 3d depth (while the gameplay is 2d, the look is 3d).
Can this currently be done using ORX? How?
I totally see what you're after. There's no problem for the gameplay but for the look you can simulate 3D effect with a depth impression such as seen in this game:
This is easily done in orx by adding simple attributes in the object's config (AutoScroll/DepthScale). There's a tutorial about it here.
However you can only simulate 3D environment, you can't create real 3D objects. If you want to render real 3D objects (like the crates in the game you posted about), you need to do it with shader code. It's feasible but requires some code on your side, whereas differential scrolling require no code at all.
Thanks again for the quick response. This engine really feels right for me. If my 2.5d platformer is doable I think I'll do it here regardless the lack of directx.
Ogga
No problem, I'm happy when I can help.
If you haven't looked at the tutorials (on the wiki) yet you'll see that the engine has a lot of interesting features that will help you develop your game faster than usual.
Also, some features/bug fixes are available on the svn repository which are not included in orx 1.0. Orx 1.1 will be released as soon as someone can compile the msvs2005 version for me.
If you plan on doing a level-based game and you want an editor, Scroll will be what you're looking for as it's written in C++, is based on orx and provide easy level editing/testing.
OK. Got it. I suppose the 3d effect should be good enough for the game.
Some other questions (I apologize for the "nagging", it's all a bit new to me):
1. Does the engine have screen management? (or: how do I manage different screens? (menu, game, highscores etc.)
2. Is there an easy way to implement menus?
3. What do you mean when you say shader code? (I'm not familiar with the term).
No need to apologize, all the questions answered here today will be of some help to newcomers in the future, so it's a good thing to do!
However, do you mind opening a new thread for your futures questions? This will make it more easy for newcomers to find answers to questions they might have and will keep this thread more focused to people introduction.
But for now, here are the answers:
1- No "screen" management in orx. However it's very easy to load/unload a whole scene using the ChildList property (1 line of code) or iterating on a list of objects (3 lines of code). You can find some examples in the tutorials as well as in the Drops prototype. Scroll adds a level-management to orx, basically done with the iterating method mentioned above.
2- Depending on which kind of menus. If you want dropdowns, textboxes, windows, not really. A plugin based on CeGUI was begun my MrGreen but is still WIP and there's no ETA.
If you need buttons, displaying localized texts, etc... that's very easy to do. Buttons are plain objects that you declare as children of a camera (they'll move along with the camera and behave in a nice way when changing resolution/aspect ratio). Texts are also objects with a Text graphic property instead of a texture. Localization is done via config files and all the displayed texts are updated on-the-fly when switching to another language, without having to write a single line of code (cf. tutorial #10).
Again there's a very basic UI example in Drops and you'll see a more advanced one in ScrollEd (the editor embedded in Scroll engine) that will be released in a couple of days.
3- Fragment (aka Pixel) shaders as seen here. They allow you to execute code directly on the GPU and basically add effects or even render anything in place of sprites for an object (like 3D rendering). A good place to begin is here.
Hey there everyone! My alias is smchronos (you guys can call me sm for short, if you want)! I'm a first-year college student double majoring in computer engineering and computer science. I play around with game programming as a hobby and have started to pick up C++ as a new language (I've used langauges like Java, Python, and Visual Studio stuff in the past). So, yeah, I'm what you guys would consider a "noobie" when in comes to C++!
I hope to be able to use the Orx framework for some lighter projects later this coming year! I think this is a really neat idea and I hope that I can contribute to it in the future once I understand C++ in more depth!
Thanks for providing something that is so awesome, iarwain! I've added several of your site's links to my favorites, so you had better keep this going!
[EDIT]
Oh yeah, just a little information. I use Macintosh (just updated to Snow Leopard) and Windows (using Vista/XP for now) as my two main machines with my Vista tablet capable of booting into Ubuntu. I love cross-platform programming!
Comments
PyOrx sounds good to me!
See you in a coupe of months, then, glad you're still around!
I've just downloaded Orx today. Sounds very good. I'd like to make a kind of Worms-like game...
This engine is very new but sounds perfect for me, and i'm glad to see that Orx 1.0 has just been released.
Thanks to the authors!
Hope you'll like working with orx and if you have any questions or suggestions, just let us know!
I found Orx about 5 months ago, but only now have the time to actually try it out. Figured I'd officially say 'hi' :laugh:
I'm looking at using my weekends to make myself a 'single-player simulation MMO'. Which basically means, 2d rpg style world, filled with AI controlled characters. The player changes the world by giving goals to the characters, rather than 'playing' the characters directly. Crazy, I know :laugh: lets see what I can manage!
I'm a full-time game programmer, 'working for the man' though, so no promises I can make any pretty art.
- Grey.
Welcome aboard. :cheer:
Single-player simulation MMO? That's an unusual concept!
Btw, how did you find about orx? I haven't done a very good communication work so far, so my guess would be wikipedia, am I right?
Oh and programmer art rulez!
As for my 'unusual concept', in a sense that's the point :cheer: . I enjoy world-manipulation games, sim city etc, and I enjoy RPGs with their character advancement and interesting worlds to explore. I think combining the two can work well with a bit of effort.
Of course, I could be utterly wrong, but that's what prototypes are for! :laugh:
No comment on the programmer art though haha.
I'm looking forward to see the prototype you'll be doing, unusual concepts can turn out in interesting prototypes. Hope orx will be helpful for you with this task.
If at some point you need any web space to store stuff you've made with orx that you'd like to show, let me know. For now on only Blarg has a private space but I'm willing to provide any orx users with one if they need it.
As for webspace, if the need comes up, i'll be sure to ask. Thanks in advance!
*edit* --wow-- can't believe I've never found Tigsource before now! yet another site to spend my days on haha
That sounds like a nice concept to me as well. And I agree, tigsource is pretty awesome. I too have ignored it for too long. As for orx I had a very good experience with it yet, I hope it suits your needs. You might want to check out my project thread while you make your first steps, altough a lot of the problems I encountered have been debugged by iarwain on the fly : )
I did take a look at your thread, interestingly it's that thread, your cool little game-in-progress, and iarwain's quick responses that gave me the push to say 'hi'.
I've been discussing my idea with a friend of mine, and he's helped me come up with a clearer explanation of what it is.
His words: "Simcity crossed with The Sims".
This does a good job of describing the basic concept... World-building is the game-goal, but it's done on a control level roughly between sim-city's "you're in charge, do what you want" and the sim's "manipulate your people so they do what you want", while not being either.
haha now that I think on it, that's probably just more confusing
As for the support, I'll try to stay as reactive as possible, but as a baby is about to arrive in my little family, don't expect fixes on day-0 too much.
And concerning Tigsource, it's a great resource site as is http://www.indiegames.com/blog , if you don't already know this one.
As for zero-day expectations, I have to find some problems before I can start expecting fixes haha!
So here it goes.
I was looking for a gfx library supporting accelerated 2D graphics. Went through pretty much everything on the list that has native C/C++ support, downloaded it and tested provided samples, looked at the code, etc. I decided ORX is what I need for several reasons.
1. No scripting language - no python/ruby/fancy_new_lang lockdown
2. No XML (I'm a strong believer that INIs are easier to edit/understand than XMLs are for so called avg person)
3. Accelerated 2D with little fluff (e.g. no support for 3D models)
4. Pretty good samples
5. Documentation that makes sense and is easy to follow.
6. Native C bindings instead of C++ classes
7. Shader support (well, as it turned out - kinda ;])
8. Code (lib/inc) organized in a way that allowed me to build standalone EXE using ORX in about a minute. (we'll see how easy/hard it is to hack ORX code itself, but based on my experience so far I'm hoping it will be fun too)
At this point I don't care about animation, physics or audio. It's nice they are there but what's even better is that they don't get in the way at all. I wanted something basic to play around with, not another 800 pound gorilla I have to learn for hours to get a Hello World-quality results. INI based configuration is fun to play with and encouraged me to stick to ORX.
Now to the negatives.
1. Per object shaders don't work and that's what I was hoping for the most. The good news is - no other sane library supports that. But that's no excuse. :P
2. I understand why it's good to have multi-platform support, but right now I don't really see any point in maintaining two separate display drivers (SDL/SFML). ORX would IMO benefit from less, well tested code paths. Audio files and images can be easily converted nowadays, there's no need in doing everything for everyone.
3. I was hoping ORX has its own display implementation (not depending on SDL/SFML) and not knowing the truth was one of the reasons I kept playing with it. I would love to see display implemented without external dependencies.
Overall I'm very hapy with ORX and plan on using it.I need per object shaders to work so I'm going to focus on implementing that feature. INI based configuration is too cool to drop ORX and start using something else.
Cheers!
Thanks for taking the time to give such detailed feedback, it's useful for me to know on what I should/shouldn't focus!
Points 1, 2, 3 and 6 are usually turn downs for people who decide not to use orx. I'm glad it's the exact opposite for you!
My goal is to provide as many important features as I can for a 2D game engine but keeping the whole thing modular so that people can use only what they need. I have to admit since the config system was added, it made things even more easy. So easy I don't know why I haven't done it before, actually.
Good, that's exactly what I need to improve stuff.
Yep, hopefully this will be sorted out soon, a way or another.
Actually my goal is to support officially one set of plugin per platform. At first I went with SDL but without OpenGL which turned out to be painfully slow when you manipulate bitmaps. I then discovered SFML who helped me having fully working plugins with acceleration and the features I needed in a reasonable amount of time (haven't written any OpenGL code in about 10 years now, so I'm not exactly up-to-date on my knowledge of the library and didn't want to write less-than-average code). Now, the way to go is definitely SDL/OpenGL for me (on mac/linux/windows at least, as iPhone might end up with a totally different set of plugins), and I will support less and less SFML plugins when I'm done.
However, the idea behind orx was that the orx-project.org team would mainly take care of the core and that, in term, the plugins would be maintained by a community. It's still something I want to achieve but the community is far to small to do this right now. But it's ok, I'm a patient man.
Only the low level functions are deferred to external libraries (like blitting a bitmap). The rendering logic is homemade, in a plugin without any external dependency. The plugin architecture also allows to easily add 3D support if someone feels the need to, without having to change much of orx's internals as orx's core mostly handles abstract data.
I'd like orx to be as easy to use as possible, and with a reduced developper team of 1 for the core as for the last 2 years, I have to prioritize and make compromises. In the end I want also to use orx, not only to develop it, as I plan to make a living out of indie games done with it. That's my escape plan from the mainstream industry before it turns out I've been working there for 10 years. And this milestone is drawing near...
I'm really happy to see that and see your motivation. If at some point you discover that orx is lacking features or anything that will get you less motivated about the project, please let me know as it might be fixed whereas if you don't say anything I won't be able to help. Of course, this works for all orx users.
3D models should be an easy to add plugin if people feel like it's needed in the future. Scripting language is unnecessary since building ORX based code is super easy and all of the core functionality one would like to tweak can be exposed in INI. Perhaps the importance of INIs should be stressed more? I for one started by looking at the code and only when I realized there isn't any for some of the samples, I started looking at the config files.
I know. I looked at the 37 functions that display plugins have to implement and that's why I think it's possible for me (as in: I don't have to spend my whole life on it) to implement it in pure OGL*) without any dep on SDL/SFML.
*) I'd rather do it in DX, but if I'm going to code something, community would probably benefit more from OGL implementation
Better do it sooner than later. Indie is getting dangerously mainstream these days.
I'm trying to convince a bunch of friends to create a pretty simple 2D game using ORX. I have an idea for a pretty neat technology that would make this game stand out in terms of graphics, but I need per object shaders to prototype it. So yeah, back to cleaning up my place and then some more coding.
Cheers!
I totally agree with the XML considerations. As for orx's take on INI, I'm glad you appreciate it. The more I play with it every day, the more tricks I find to make my life better. And by that means less work, shorter amount of dev/debug time to get what I want on screen.
That's what I try to emphasize on when I'm talking of the data-driven side of the engine. However I probably should give small examples to explain it better. I've been wanting to post on some game development forum, but seen the close-to-zero answers I got last time I did such a thing (1 or 2 years ago), I'm not sure it's worth the amount of time.
Some functions are only to be used for low-end architecture such as GBA and DS, so don't bother with all of them (especially the colorkey stuff, etc). As for OGL, it'd be much appreciated as I could in turn benefit from it for the iPhone display plugin, and so would the community.
So true! I've been wanting to do that since 2002 though. ^^ But lately working on a 200+ team *really* makes me want to do it ASAP.
That'd be nice! If you need any help/examples for convincing them, let me know!
Cheers!
I am an indie game developer who has been using the FlatRedBall game engine for the last few years (I recently finished a game with the FRB engine) and am considering moving to a different game engine.
Although I am very pleased with the FRB engine the need for MacOS support has started this search for a new engine.
My next game will be a 2.5d side-scroller. (I'd like the characters to be 2d, the game play 2d, but have the background and the terrain be 3d (boxes, pyramids etc.) or more speifically speaking have a 3d effect).
I read a bit about ORX in the wiki but I have a few questions which I'd like to ask.
Here goes:
1. To create a game for several platforms (specifically Windows, Mac, Linux & IPhone) can I use the same source code or do I need to rewrite the code with a different plugin for each targeted OS?
2. What is the meaning of "no 3d rendering"? Does this mean that you can only place sprites at a 90 degrees angle from the camera? I suppose not but I didn't quite understand.
3. Does the engine use directx? Can it? (For several reasons I prefer using directx graphics over OpenGL)
4. How can I use the engine with C++ code (it is easier for me)
5. Have any 2.5d games used the ORX engine?
Thanks in advance, I look forward to creating games with this engine.
Ogga
Hi Ogga, and welcome amongst us!
I didn't know the FlatRedBall engine before today so I went to have a quick glimpse to it. Congrats also for the release of Cubism and best of luck for the sells!
Well, as you'll see later in my reply, 3D effects are easily done whereas real 3D isn't supported yet.
Yes, the same source code will be used on different platforms. However you'll probably have to tweak a couple of things (such as the display resolution, the main function prototype or even inputs depending on which platform you are). That being said almost everything will be accessed through orx's API and 99% of the code will be the same for all the platforms.
Yes, that's it. Orx's world is in 3D, but unfortunately the current available rendering/display plugins are only 2D.
Adding 3D support would be pretty easy but it requires writing new plugins for display and rendering.
That being said, you can display 3D objects/FXs by using the fragment (pixel) shaders.
The only available display plugins (the SFML-based one + the SDL/OpenGL one I'm currently working on) are based on OpenGL and work on linux/windows/mac OS X. The iPhone plugin that will be done in a couple of weeks will also be based on OpenGL.
However, it's totally doable to write a DirectX display plugin for windows. I'll probably have to do it if I want to support XNA at some point. Till then, unless someone contributes for one, there are none, sorry.
Very easily by writing your C++ code and calling orx's C code natively. There are two examples in the tutorial (#10 & #11). In a couple of days I'll also release Scroll which is a level-based game engine written in C++ on top of orx.
Full games? Not that I'm aware of. Some prototypes have been released (either by me or by community members) and I'm working on private prototypes with different persons that will hopefully lead to full released game in the future.
You're welcome. I'm afraid orx doesn't exactly suits your needs (OpenGL-based + 3D through shaders only), but if you choose to work with this engine, be assured that you'll get as much help as possible as you might already have guessed if you read some threads in the forum.
Best,
iarwain
Wow! You really answered quickly!
Regarding the 3d effect - I think I didn't quite explain myself properly.
What I'm looking to do in that aspect is very similar to the following link (the relevant gameplay starts around 2:15 minutes):
Generally speaking, I'd like to make a platformer with 3d depth (while the gameplay is 2d, the look is 3d).
Can this currently be done using ORX? How?
Thanks again for the quick response. This engine really feels right for me. If my 2.5d platformer is doable I think I'll do it here regardless the lack of directx.
Ogga
Trying my best but luckily I was on my computer when you posted. Generally I try to reply at least within a day.
I totally see what you're after. There's no problem for the gameplay but for the look you can simulate 3D effect with a depth impression such as seen in this game:
This is easily done in orx by adding simple attributes in the object's config (AutoScroll/DepthScale). There's a tutorial about it here.
However you can only simulate 3D environment, you can't create real 3D objects. If you want to render real 3D objects (like the crates in the game you posted about), you need to do it with shader code. It's feasible but requires some code on your side, whereas differential scrolling require no code at all.
No problem, I'm happy when I can help.
If you haven't looked at the tutorials (on the wiki) yet you'll see that the engine has a lot of interesting features that will help you develop your game faster than usual.
Also, some features/bug fixes are available on the svn repository which are not included in orx 1.0. Orx 1.1 will be released as soon as someone can compile the msvs2005 version for me.
If you plan on doing a level-based game and you want an editor, Scroll will be what you're looking for as it's written in C++, is based on orx and provide easy level editing/testing.
The alpha should be out in a couple of days.
Some other questions (I apologize for the "nagging", it's all a bit new to me):
1. Does the engine have screen management? (or: how do I manage different screens? (menu, game, highscores etc.)
2. Is there an easy way to implement menus?
3. What do you mean when you say shader code? (I'm not familiar with the term).
Thanks,
Ogga
No need to apologize, all the questions answered here today will be of some help to newcomers in the future, so it's a good thing to do!
However, do you mind opening a new thread for your futures questions? This will make it more easy for newcomers to find answers to questions they might have and will keep this thread more focused to people introduction.
But for now, here are the answers:
1- No "screen" management in orx. However it's very easy to load/unload a whole scene using the ChildList property (1 line of code) or iterating on a list of objects (3 lines of code). You can find some examples in the tutorials as well as in the Drops prototype. Scroll adds a level-management to orx, basically done with the iterating method mentioned above.
2- Depending on which kind of menus. If you want dropdowns, textboxes, windows, not really. A plugin based on CeGUI was begun my MrGreen but is still WIP and there's no ETA.
If you need buttons, displaying localized texts, etc... that's very easy to do. Buttons are plain objects that you declare as children of a camera (they'll move along with the camera and behave in a nice way when changing resolution/aspect ratio). Texts are also objects with a Text graphic property instead of a texture. Localization is done via config files and all the displayed texts are updated on-the-fly when switching to another language, without having to write a single line of code (cf. tutorial #10).
Again there's a very basic UI example in Drops and you'll see a more advanced one in ScrollEd (the editor embedded in Scroll engine) that will be released in a couple of days.
3- Fragment (aka Pixel) shaders as seen here. They allow you to execute code directly on the GPU and basically add effects or even render anything in place of sprites for an object (like 3D rendering). A good place to begin is here.
I figure I better register before orx blows up and you forget about me! Catch you later!
Nice to see you here!
There's no java binding for orx yet, but who knows, maybe you can make them yourself in the future!
Good luck with your learning. If you have any question, I'm sure you'll find answers through the forum.
I hope to be able to use the Orx framework for some lighter projects later this coming year! I think this is a really neat idea and I hope that I can contribute to it in the future once I understand C++ in more depth!
Thanks for providing something that is so awesome, iarwain! I've added several of your site's links to my favorites, so you had better keep this going!
[EDIT]
Oh yeah, just a little information. I use Macintosh (just updated to Snow Leopard) and Windows (using Vista/XP for now) as my two main machines with my Vista tablet capable of booting into Ubuntu. I love cross-platform programming!
From what I can tell with my personnal experience, I think you'll have a lot of fun learning c/c++ along with orx : )
The engine is actually pretty solid in its current state. Not that you've said otherwise, I'm just meaning to comfort you in this idea =P