Hi again, I have another noob question.
I have spent a lot of time dabbling in Visual Basic, Game Maker and RPG Maker XP. I'm used to making games mostly through visual interaction and little coding.
I have a rudimentary understanding of programming languages but I don't know how to use well any particular language.
I don't know c, c++ or c# at all.
How much do I need to learn to be able to use orx?
How much do I need to adapt? Is it worth it?
Is what I already know of any use in orx?
Is orx made to be used by people like me?
One of my main concerns is that I have to position my GUI, enemies, items, etc by typing coordinates instead of "dragging and dropping" them visually so I could see exactly where they'll be before I run the program.
So, you will not be able to use orx without learning at least the C language. And if you don't know that, you will have to spent a lot of time to learn that, it's sure.
When you're making a game, positionning object is really a minimal part of the game. You will have to program all your game behaviour, and this is done by your C/C++ program.
Orx is an engine (or a game tool set if you want), not an editor. It provide functions (I mean C functions) to manipulate objects (move,animate,fx), manage input (keyboard, joystick, mouse), have collison detection, have manage sound, etc ...
The config file (*.ini) in orx, are only a description for your objects, not their behaviour. You can't make a game just be using ini files.
So, I think if you don't know the C language, it will be your first step. There's a lot of tutorial on internet, you will find that easily.
Using orx assume that you're familiar whit that.
Let's say I want to make a side scroller platform game.
Will orx handle the rest if I learn just some basic commands or do I have to become a full fledged programmer to make anything?
I have been using orx as a vehicle to cement my own c++ skills and learning more of the language as I go.
It might be fairly feasable that you learn the very basics of c++ and orx and get some simple things going. You will then come to road blocks and you will need to learn more in order to proceed.
Things I have learned or improved upon while writing my game are c++ class, vectors (like arrays), pointers, functions and passing parameters, splitting up code files and code organisation.
You will also encounter the inital problems of getting your development environment going. Not always so straight forward but there are a lot of tutorials in the wiki to help greatly.
Hope this helps you gague if orx and c++ is suitable or not for you. I think overall, if you want to learn just the basics to get something up and going quickly, you will be quickly frustrated.
If however, you are treating this as more of an educational journey and picking up a programming language along the way, you'll earn yourself much more than just the original game you wanted to write.
Like Sausage said, we can't really answer that for you. Not even you at this point! No one can predict "how much" you need to learn and "how long" you need to practice a language in order to do what you feel like, to complete your project.
Picking up a language sure is scary at first, but you really need to understand that programs like RPG Maker will not always be around to let you create that game in a few clicks. Programmers are and will always be our future, so go ahead and pick up C/C++, practice everyday, look at tutorials, then come back when think you know enough to start something on your own.
You're just not ready, just like me back a few months ago when I first heard about Orx.
My ultimate guide (huzzah!):
1) Learn the basics (C/C++, few months of daily practice)
2) Look up Orx tutorials and test the engine to understand it.
3) Plan your game, start working on it using the Orx Engine.
4) Ask questions on this forum if you're stuck with Orx or look up more tutorials / ways to solve the issue if it comes from the language itself
Orx isn't a visual development environment per se, I'm afraid.
There are some projects that aim to make it more user friendly by adding editors, such as Ocean (that you can find in this forum) or Scroll/ScrollEd, which I used to create the small platformer Mushroom Stew a couple of years ago (also referenced in this forum).
But even with those don't expect to be able to create any behavioral logic with visual bricks. Or at least not in these tools' current state.
Now, if you're a bit used to Visual Basic or GameMaker's scripting language and you feel like you know how to organize your code to create logic (or are wanting to learn it), orx shouldn't be too hard to apprehend and the community will definitely help you. There are a few tutorials on the wiki (mainly the community ones) that should help with that too.
However, you must still begin by learning C or a derivative such as C++. Learning C, and to some extent C++, shouldn't be too bad if you have some Visual Basic experience and will mostly be a matter of learning a new syntax and maybe a couple of concepts. I'd go with C if I were you as C++ is more complex and potentially more confusing, but that's my own perception, I know some people that'd advise the opposite.
I also know some people who wrote bindings for orx for their favorite scripting language, such as LUA.
Now, what orx brings you, in addition of supporting multiple platforms is a lot flexibility and accessibility over all the non-visual 2D engines. But it also brings better performances than most of the available free (or not) 2D engines out there as well as a lot of customization possibilities (like playing with shaders or even doing 3D rendering if you feel like it).
If you want to get a platformer with a lot of 2D visual FXs and nice polished features, for example, I think it's definitely one of the best picks.
Again, I'm not the best to answer that question as I'm very intimate with its architecture and it's hard for me to differentiate between what is easy and what's more complex to access, in term of features. That's why I was hesitating to reply here in the first place.
I don't need actual visual bricks like in game maker, or to be code-free. What I am used in is the event-oriented utility of visual basic, that has just two features: 1) I could visually position any objects on the screen instead of typing coordinates and 2)A lot of the scripting can be organized visually through objects' events.
From what was already said, I figure that needs to be handled manually in c, which feels daunting at this point.
On the other hand, I must admit I'm hardly satisfied with the performance of game maker, where a pentium 3 is unable to play games of the 1990-1993 caliber in graphics and complexity. (I know that from experience)
So performance is a very good argument to me.
Also, since you mentioned price, I must say that licence terms are also a very important reason for me to be here and be willing to invest time and effort to this engine.
Flexibility is a concept I do not understand at this point as far as coding is concerned. In visual editors it can be a huge factor since most constrict you very heavily, but I always thought that if you could code, you could pretty much make anything exactly as you want...
So long story short, I need to become a c programmer.
I don't know how long that will take me...
I suspect I will eventually get to learning it, but right now, just like sausage said, I need to learn some basic concepts and see some (very) basic results. I find the editor projects very interesting.
I have checked Ocean out and it's looking good but yes, it's pretty much in the alpha stage right now...
If possible I'd like to check Scroll/ScrollEd out. Is it available for download?
Definitely. And that's why it's not very easy for us to advise you there as we don't exactly know what you want to invest in this project (in term of time/learning) and what result you're expecting.
1 - The visual positioning can be done via Ocean or Scroll.
2 - I don't think I have a good answer for that one. However you can get events too via orx (like collisions, object creation, inputs, etc...) but to handle them you have to write code. The logic is similar, it's just that there's no visual interface to arrange it.
I was also surprised to see how much of a resource hog Game Maker can be. I'm currently porting a small indie freeware made by someone else on Game Maker to orx, and for a game with so little requirements, Game Maker sure is taking a lot of juice (not even mentioning the long loading time at the beginning).
There are probably very good reasons for that, but I know that it would drive me mad as a user.
That's a valid reason however I'm sure there are other free and/or open source alternatives to orx. Although the ones that supports many platforms usually have some kind of licensing fee.
That's true from a general perspective. You can do whatever you want if you code it... from scratch. Which is a huge time investment. When you use a framework or toolkit, that's where restrictions come in line. Usually the more features you get, the more restrictions. We've tried to keep orx as simple and accessible as we could and kept adding features to it. I think we didn't do too bad a job at keeping if flexible (in the sense that the user can modify/adapt or even replace parts of its behavior) while having a feature rich engine. You can notice the lack of scripting or networking support (at least, for now), but there are plenty of external libraries that can be used along orx to have those features.
Instead we tried to primarily focus on more unusual features (the list is too long to be pasted here, but the about page can give some ideas).
That's the only requirement but it's not something that trivial as you already know. However if you're already used to organize your thoughts into a logic flow (whether it's done with a graph and boxes or scripting), I'd say the hardest part is already behind you. That's what I think is the hardest to explain (and learn). Learning how to write a program is a very mechanical process and you simply need to learn about its syntax.
If you start with C (which is much simpler than C++, but also has less advanced features), you can be trained in writing programs in a matter of a couple of weeks. Of course, you'll then improve if you practice over the years, but that should be enough for using orx in the first place.
If you want to have a good idea on the complexity of writing things with orx, I'd advise looking at the tutorials on the wiki, especially Grey's ones.
A good thread to read also is Blarg's first test/project.
You can see how he gets to learn orx and the results he gets after a few days. Blarg is primarily a flash developer and this was his first attempt at learning C, I believe.
Sure. There's no doc that comes with it, unfortunately, that's why I haven't released it publicly. If you go to this post, you can download Mushroom Stew which is a small game I wrote in about 20-25h for a TIGSource compo (with constraints) 2 years ago. Scroll is a thin layer on top of orx that adds some convenience wrappers in C++ and embeds a level editor inside your own game. To run the editor, on the command line simply add the -editor parameter.
I'll update the thread with basic info on how to use Scroll and ScrollEd tonight.
If positioning utilities actually are part of making games with orx and that event-oriented programming is an option where necessary, I can understand you saying that the logic is similar.
So the methods I have learned so far will be useful here too somehow.
Mushroom stew is great. And the fact that it was a 25 hour job is very encouraging for somebody who wants to focus on putting a big game together. Scroll looks very good and easy to use. Also, if a couple of weeks learning c is enough I am willing spend them. I think I have all I need to get started(including motivation).
Everyone, thank you for helping me.
PS: Game Maker loading times: What it actually does is unzip all the game's music in the temp folder. I don't know if it does anything other than that in that time.
Thank you for your appreciation of Mushroom Stew. Unfortunately the adaptation I put together with the latest version of Scroll has a few bugs I haven't had the time to investigate yet (mostly wrong animation transitions that trigger bullet shooting as those are driven by animation events).
If you want to use Scroll, you'll need to learn C++, or at least the basics on how to create a class, inherit from another class and override a method. This is minor knowledge added on top of C, though.
If you have any programming questions, don't hesitate to ask as it can sometimes get very frustrating when stuck on the same problem for a long time.
A I see, I didn't know that Game Maker was extracting all the data on disk. That sounds a bit inefficient, especially when there are a lot of files and they could extract everything directly to memory. Thanks for the info.
I really appreciate your support.