Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411491 Posts in 69377 Topics- by 58433 Members - Latest Member: graysonsolis

April 29, 2024, 08:21:40 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperTechnical (Moderator: ThemsAllTook)Portable Game Engine
Pages: [1]
Print
Author Topic: Portable Game Engine  (Read 5366 times)
iarwain
Level 0
***



View Profile WWW
« on: September 01, 2008, 03:12:31 PM »

Hi all, after a few months of really hard work I'm back.
I considered replying to my old posts but as it is really big and old, I thought beginning a new one was the way to go. Hope it's not wrong.

I'm here to talk about orx, an opensource, portable, data driven and very easy to use 2D-oriented game engine. It currently runs under windows (mingw, msvs2005, msvs2008) and linux. GP2X version is in debug phase and I'm looking for someone with access to a mac to try the mac OSX version.


The v0.9.0b has just been released and I worked a lot to improve it given all the comments I got some months ago. Orx can still only be used by advanced users so far, as it requires programming skills (no GUI available).

You can find more information directly on the web site http://orx-project.org.
The site is still WIP, but if you're not too regarding for the presentation, you might find useful informations.

Along with the release, 10 basic tutorials have been written, covering orx features such as: basic object creation, display, animations, sound/music, viewports/camera, physics/collisions, automated differential scrolling, visual FXs, ...

Lot of work has been done to make it far more user friendly. Only one line of code is needed to create an object. All of its properties will be defined through config file (graphic, physics, etc). In another words, orx is now data oriented. This means tweaking and adapting your game is doable through config files most of the time, allowing you to parameterize everything without recompiling and even sometimes without relaunching your program.
You also don't have to worry about a display loop, data management and usual stuff you have to take care of using traditionnal 2D game libraries and engines. We aimed at keeping its use as easy and straightforward as possible.

Tutorials files (that you can find here) contain fully commented sources and binaries for windows and linux. This way you can see how orx is used and try to play with it (I suggest trying to change values in the config file and see what happens).

The web site will be improved in the future with more info, screenshots and probably videos.

I'll try to keep this post not too long, so if you have any question, feel free to ask, I'll try my best to answer them! =)

PS: Sorry for my bad English! ^^
« Last Edit: September 01, 2008, 03:28:21 PM by iarwain » Logged
muku
Level 10
*****


View Profile
« Reply #1 on: September 01, 2008, 03:18:34 PM »

The site seems to be down, but this sounds like a Good Thing (even though there must be myriads of these engines/libraries out there). I like the data-driven approach.

You should mention programming language, too; I'm guessing C++. If so, do you have scripting or do you intend to add it?

EDIT: Also, your tutorial link is broken.
Logged
iarwain
Level 0
***



View Profile WWW
« Reply #2 on: September 01, 2008, 03:27:22 PM »

Thanks for the answer, muku! Smiley
Yes, I mistyped the bb code for the tutorial link, my bad, I'm fixing this right away.  Embarrassed

The website looks up to me, if it's down, you still can reach the sourceforge page here: http://orx.sf.net.

As for the programming language, orx core is written in C and regarding its plugins, some are in C, some in C++.
You don't have to write C code to use orx, any language that can interface with C can be used. For example, I wrote the last tutorial (10_StandAlone) in C++.

Wrappers will be added in the future (C++, Python, D, etc...) but as I'm running out of time it may take a while. If some people want to contribute by adding wrappers for their favourite langage, please let me know!  Smiley

As for the scripting, it's WIP. Current release is 0.9.0 and for the 1.0 scripting and package modules will be added.

Right now I'm focusing on the 0.9.1 release featuring, amongst other stuff, an advanced tutorial (platformer-like pixel art game) and speed/movement control through the animation data.
« Last Edit: September 01, 2008, 03:31:44 PM by iarwain » Logged
muku
Level 10
*****


View Profile
« Reply #3 on: September 02, 2008, 02:44:35 AM »

Yes, the site is back up now.

Wrappers will be added in the future (C++, Python, D, etc...)

Very good. I do all my game development in D nowadays, so I like that. Unfortunately I have most of the infrastructure I need done myself in D, so I'm having a hard time justifying putting more time into writing a wrapper, but once I start a bigger project again maybe I'll look at what your engine has to offer.
Logged
iarwain
Level 0
***



View Profile WWW
« Reply #4 on: September 02, 2008, 12:51:38 PM »

When the time has come for you to start a new big project, and if you find some interests in orx, please contact me for the D wrapper. Smiley

As a matter of fact, I probably won't write the D wrapper myself as I've never coded in D so far (I only read the specs two years ago when the v1.0 was about to be released).
Logged
iarwain
Level 0
***



View Profile WWW
« Reply #5 on: September 10, 2008, 07:47:05 PM »

The last two days, I've been working on spawners in orx.
In the optic of making a tutorial video to show how to use orx (and how easy it is), I wrote this little piece of code (takes about 30 seconds to write):

Code:
#include "orx.h"
orxSTATUS Init()
{
  orxViewport_CreateFromConfig("Viewport");
  orxObject_CreateFromConfig("Object");
  return orxSTATUS_SUCCESS;
}
orxPLUGIN_DECLARE_ENTRY_POINT(Init);

As we can see, it simply creates a viewport and an object. As simple as it gets.
Thus, by launching orx.exe, we'll merely see a character displayed on screen. Nothing fancy.
However, the goal of the future video is to show, step by step, the data-driven side of orx, and all possibilities coming with even this simple code.

If you want to try the result, I've put a small zip online (link at the end of the post). After launching orx.exe, open orx.ini, go at the end of the file, line 108, that looks like this: ;[Object]

Simply remove the ; and save the file. Relaunch orx and you'll see that the result has nothing to do with the previous one, though we're using the exact same code (but with different data).

If someone tries it, any feedback is welcome! Thanks in advance! Grin

Link to the test archive: http://orx-project.org/orx/orx-test-20080909.zip
Logged
muku
Level 10
*****


View Profile
« Reply #6 on: September 11, 2008, 06:52:20 AM »

If I run orx.exe, all I get is a console window with no text in it. No graphical window. Undecided
Logged
iarwain
Level 0
***



View Profile WWW
« Reply #7 on: September 11, 2008, 07:50:39 AM »

Damn, i've only tested it on windows XP (and ubuntu linux) so far.
Do you mind giving me more info about your conf? Did the archive unzip correctly (someone reported me problem with it)?

You should have at least, in the bin folder: orx.exe, orx.ini, orx.dll, Object.dll.
It also should containt a plugins subfolder that contains 7 plugins:
- orxDisplay_SFML.dll (if this one is missing, you can't have any graphical window
- orxFile_LibC.dll
- orxFileSystem_LibC.dll
- orxKeyboard_SFML.dll
- orxPhysics_Box2D.dll
- orxRender_Home.dll
- orxSystem_SFML.dll

Did you try the binary tutorials available from the download page? If so, did you experience the same issue?

Logged
moi
Level 10
*****


DILF SANTA


View Profile WWW
« Reply #8 on: September 11, 2008, 07:59:54 AM »

Works for me (vista+crappy embedded ATI card), both versions. Very smooth.
I'll definitely take a more closr look at this engine  Beer!
Logged

subsystems   subsystems   subsystems
muku
Level 10
*****


View Profile
« Reply #9 on: September 11, 2008, 08:01:04 AM »

This is Windows 2000, AMD Athlon XP 3200+, Radeon 9500.

The archive unzipped correctly, I have all those files.

I tried the tutorial binaries (those from the VS2005 version), and the same thing happened. No viewport to be seen.
Logged
iarwain
Level 0
***



View Profile WWW
« Reply #10 on: September 11, 2008, 04:17:02 PM »

Thanks both for your feedbacks, guys!  Smiley

Muku, I'll contact you by PM.

Moi, any other feedback, comment or piece of advice will be welcome! Grin
Logged
moi
Level 10
*****


DILF SANTA


View Profile WWW
« Reply #11 on: September 11, 2008, 05:12:16 PM »

Can you create a game without compiling any C code or not?
Logged

subsystems   subsystems   subsystems
iarwain
Level 0
***



View Profile WWW
« Reply #12 on: September 11, 2008, 05:23:11 PM »

You can compile C++ code if you prefer! Wink

Well, if you mean using a scripting language for high level control, it's not ready yet.
Scripting support is planned for v1.0 (probably by the end of this year/beginning of next one).
On the other hand, if you want to write Python or D calling directly orx functions, a mere wrapper is needed.
I need to find someone with enough expertise in these languages to help me writing them as I'm more fluent in assembly than in python, unfortunately.
« Last Edit: September 11, 2008, 06:21:40 PM by iarwain » Logged
iarwain
Level 0
***



View Profile WWW
« Reply #13 on: September 11, 2008, 07:15:32 PM »

About the windows 2000 version issue, with the help of muku, we've been able to narrow it down nicely.

Apparently it only affects visual studio release versions (debug are fine, and mingw-based one too).

The SFML display plugin fails its init phase (but only in release). I'll try to figure out what happens, still with muku's help.
Logged
cmspice
Level 1
*


View Profile
« Reply #14 on: September 14, 2008, 09:16:21 PM »

You know, this engine is freakishly like the one I'm working on. Especially the use of the chain animation graph.

It's a shame my engine still has a long way to go :p.

This is cool. I might look into it after I'm done with my engine which is currently being written in SDL primarily for programming practice but also versatility. SDL is bollocks so this would be faster than learning and porting my code to openGL.
Logged
iarwain
Level 0
***



View Profile WWW
« Reply #15 on: September 17, 2008, 07:46:19 PM »

I think the animation graph is the way to go. It's so annoying to write polling code to chain animations... =)

I tried to have a very compact and query-optimized representation of the graph. If you think it's worth something and it may help you, feel free to dig in the code and take what you think may help you. That's the primary reason why the code's in open source.

Thanks for your post, btw, it's really hard to have feedbacks, so I'm greedy of all comments I can get. Wink

Btw, some good improvements have been made since the last release (only on the svn version though):

- orx compiles out of the box if you're using a workspace/solution file (visual studio 2005/2008, code::blocks or codelite), no need to setup anything, all external dependencies for plugins are already done in the project files now.

- spawners have been added (see the video tutorial from the main page of the site, or directly at http://vimeo.com/iarwain/videos. There's no sound though, sorry, and some video might be a bit long, but it showcase the data-driven/config side not too badly

- ini management have been improved: you can include other ini files at any place. (like a #include), which comes very handy combined with the override/inheritance system

- 100+ error messages have been included (the code has still 200 tags that need to replaced, but that's a first step Wink )

- Inconsistencies in the visual studio dynamically linked versions have been fixed. Maybe it'll help with the windows 2000 issue?
Logged
cmspice
Level 1
*


View Profile
« Reply #16 on: September 17, 2008, 11:13:31 PM »

I think the animation graph is the way to go. It's so annoying to write polling code to chain animations... =)

I tried to have a very compact and query-optimized representation of the graph. If you think it's worth something and it may help you, feel free to dig in the code and take what you think may help you. That's the primary reason why the code's in open source.

Thanks for your post, btw, it's really hard to have feedbacks, so I'm greedy of all comments I can get. Wink

Animation graph for the win. One thing I had always been super picky about is animation and one of the major reasons why I want to make my own engine. Came up with the idea myself too keke. Honestly, it makes the most sense and it's entirely practical even for very simple animations. I'll look into what you have for ideas. I'm not a very experienced programmers. Mines pretty typical and the main loop will ask the object for the information. The main issue I have with my model right now is synchronizing the "actual" movement of the sprite with it's animation. For example, my run animation is 12 frames long since I'm crazy and jumping takes place on the 6th frame but if I hit up on the 7th it goes through 11 frames before it's at the jump frame so I want it to wait 11 frames before actually moving the sprite. A quick solution to this would be easy, but I want to find a way to generalize this.

Anyways, I think I might give this engine a go. It seems versatile enough for what I want. My own engine is coming around too slowly. It's so hard to find the motivation especially since it's all programming and no game. I hate programming and I want to be spending my time no making games grr.

BTW, just curious, what graphics library do you use? OpenGL?
Logged
iarwain
Level 0
***



View Profile WWW
« Reply #17 on: September 18, 2008, 04:39:09 PM »

Animation graph for the win. One thing I had always been super picky about is animation and one of the major reasons why I want to make my own engine. Came up with the idea myself too keke. Honestly, it makes the most sense and it's entirely practical even for very simple animations. I'll look into what you have for ideas. I'm not a very experienced programmers. Mines pretty typical and the main loop will ask the object for the information. The main issue I have with my model right now is synchronizing the "actual" movement of the sprite with it's animation. For example, my run animation is 12 frames long since I'm crazy and jumping takes place on the 6th frame but if I hit up on the 7th it goes through 11 frames before it's at the jump frame so I want it to wait 11 frames before actually moving the sprite. A quick solution to this would be easy, but I want to find a way to generalize this.
I'm currently adding speed control through animation data for the next release. I'm not sure if it'll solve your issue, but I think it might probably help. =)

Quote
Anyways, I think I might give this engine a go. It seems versatile enough for what I want. My own engine is coming around too slowly. It's so hard to find the motivation especially since it's all programming and no game. I hate programming and I want to be spending my time no making games grr.

You're welcome to try. If you do so, I advise you to have a look to the tutorial video I made and, in a second time, to all basic tutorials (without video) available from the tutorial section of the site.

Quote
BTW, just curious, what graphics library do you use? OpenGL?

The engine uses plugins for platform-dependent operation, such as display. Currently I have two up-to-date plugins: one based on SFML (itself relying on OpenGL) that I use as my primary display plugin on windows/linux and another one based on SDL (which I currently only use for GP2X).

I had an allegro plugin too, but it's really out of date, so I removed it from the svn repository. I'll put it back when it'll be updated.

If you have any technical questions, please ask them directly on orx forum, this way it might help for having a good base for a FAQ. =)
Logged
cmspice
Level 1
*


View Profile
« Reply #18 on: September 18, 2008, 10:28:17 PM »

hehe, Okay, if I have some problems with orx, I'll post over on your forums.

That's another reason I'm willing to try orx. You have these great tutorials set up.... You have no idea how long it took me to find a decent tutorial for SDL...
Logged
iarwain
Level 0
***



View Profile WWW
« Reply #19 on: September 19, 2008, 03:16:52 PM »

Speaking of tutorials, any comment/feedback on them is welcome. I'm no good at design/comm, so I'm more than sure that the tutorials are not very good and friendly right now. Smiley
Logged
Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic