Orx - Portable Game Engine
Commands and TimeLine tutorials Print
Written by iarwain   
Monday, 10 November 2014 04:42

Hi all,

 

Sausage just added two very useful tutorials about commands and timeline. They can be found here:

Commands

TimeLines

 

Those complements nicely the information already available on the orx-dev group:

- Commands and TimeLines (basic)

- Using immediate commands in config files

- Discussion on future commands/timeline improvements

 

Cheers,

- iarwain

Last Updated on Monday, 10 November 2014 04:44
 
Multi-threading/asynchronous resources Print
Written by iarwain   
Sunday, 10 August 2014 03:19

Hi all,

First, as you've noticed, the website never went down and there was no follow up from my host. So I guess so far, so good. ;)

 

Yesterday, I finally finished the iOS version of asynchronous resources handling (texture/sound) and merged the "thread" branch (which I have been using for over 10 months for my own projects now) into the "default" one.

That means a few things:

- orx now support asynchronous resource accesses.

You'll notice that saving a screenshot or loading textures and sounds won't block the main thread anymore, which used to result in the rendering being paused for a short duration. The immediate side effect is that there might be a slight delay when playing a sound for the first time or a white rectangle being displayed while a texture is getting loaded (though that temporary texture can be redefined at will if you'd rather have, say, a transparent temporary texture). In most cases you won't notice those, especially in release builds. However if that becomes an issue, one can easily pre-load assets with a simple loop and even render a progress bar as the engine execution won't be stopped while loading anymore. Config files are still load/saved asynchronously.

Lastly, if you were handling your own resources manually, you can either have synchronous calls or asynchronous ones by simply passing a callback to the read/write function: no callbacks -> synchronous, callbacks -> asynchronous.

 

- orx supports multithreading and exposes a unified API to create, pause, delete, enable, ... threads as well as semaphores for synchronization primitives. There's also a memory barrier macro available for those of you that would need it. Only a full blown read/write one has been added for now. There's no unified thread local storage support yet due to the annoying lack of standard around the __thread() keyword.

 

- profiler markers are correctly handled over multiple threads. And so is the profiler in-game display. By default, page up and page down allows one to display info about other threads.

 

- orx does have more than one thread running. Resources calls are all done in their own thread, same for sound streaming and lastly a generic purpose worker thread is available for tasks created with orxThread_RunTask(). I should probably add a tutorial on this function at some point as it has some interesting properties regarding sequencing (and helps removing the need for explicit synchronization primitives).

 

- most important of all: orx's API is *NOT* thread safe, for the most part. So if you were to use the aforementioned orxThread_RunTask(), make sure your tasks are not calling any orx functions. So far the only module that has a thread safe API if the orxThread one itself. orxProfiler is also mostly thread-safe. But that's about it. So please don't do any orxConfig_* calls in an asynchronous task. I'll add thread safety later on when I've settled on a good performance/safety compromise.

 

In addition to all this, another important news about the "default" branch is that the MinGW32 version now uses gcc 4.8.1: I've retired the good ol' gcc 4.6.2.

 

I should be releasing orx 1.6 officially shortly, unless any big issue is uncovered. Don't hesitate if you have any questions! :)

 

Cheers,

- iarwain

 

Last Updated on Sunday, 10 August 2014 03:20
 
Happy new year! (and 1.5 release) Print
Written by iarwain   
Wednesday, 01 January 2014 04:20

Happy new year to all of you! =)

I took this opportunity to push orx 1.5 today. Not many new things since 1.5rc0 beside a few small fixes and additions.

That being said, 1.6 is probably coming out early 2014 with quite a major change: multi-threading support and asynchronous tasks & resources.

That means orx will load & save all sound and image resources asynchronously, out of the box, however that behavior will be entirely controllable.

Users will also be able to create their own threads and execute asynchronous tasks. Those are powerful but advanced features and will probably not be recommended for everyone: be careful though as most of orx's API itself isn't thread-safe, such as the config system.

Anyway we'll get other occasions to talk more about this. ;)

Cheers,

- iarwain

 

Last Updated on Wednesday, 01 January 2014 04:20
 
Website soon going down for undetermined duration... Print
Written by iarwain   
Monday, 20 January 2014 00:23

Hi all,

I've been warned 2 days ago that my host is going to do a forced migration from Joomla 1.5 (which this website is currently using) to Joomla 2.5 sometimes during next week.

I spent a few hours today in order to try to do a preventive migration myself. In the process I tried different conversion scripts, even trying commercial solution trials (like cms2cms), to different targets: Joomla 2.5, Joomla 3.2, Drupal 7 and WordPress 3.8.

Unfortunately I could only get the static pages and the news articles converted, at best.

What this means is that the new website would be missing it's current theme, logo, screenshot section, private messages, and most important of all, its forum.

I'd rather spent the amount of spare time I can devote to orx to actually write code for it (like finishing the multithreading support and all the cool new features listed in the issue tracker section of the bitbucket page).

It's unlikely I'll be spending much time to patch the site itself after the forced migration. I might even have to take it down it it's really bad and put up a very basic static page with links to all the external resources (doxygen, wiki, orx-dev google group, bitbucket & sourceforge).

 

That being said, I wouldn't be opposed to having a brand new minimalist site made on a fresh new base, as long as there's some way to consult old forum posts (the amount of knowledge stored in them is very valuable).

If anyone with some web development knowledge would like to help with either the migration process or with starting a new site, please contact me (@orxproject on twitter might be the fastest way).

If you have any suggestions or comments, don't hesitate to share, anything can help!

 

Thanks all! =)

 

- iarwain

 

Last Updated on Monday, 20 January 2014 00:24
 
Orx 1.5rc0 is out! Print
Written by iarwain   
Monday, 14 October 2013 19:54

You can find the files here.

 

Enjoy!

- iarwain

 

Last Updated on Monday, 14 October 2013 19:55
 
«StartPrev12345678910NextEnd»

Page 1 of 15