Pey - Orx Project Organizer

I thought I'd let people know what I'm working on with a little video of the current program state.

The program is a Project Organizer for projects using the Orx engine. The goal is to have Pey(I'll let you find out why it's named that) be able to create a project structure for your new projects and give you a visual way to look through and organize your ini files.

Goals for v2.0:
*reimplement data storage in Orx's structure
*code skeleton generation (also known as export game)
*previews on properties generated by orx(graphics possibly remapped to QPixmap)
*click on property key generates preview instead of object key(allowing multiple previews without overlapping)
*add multiple properties(resources) at once

Tasks done:
☑ objects and properties addable
☑ drag and drop objects for inheritance
☑ texture visible in preview area
☑ internal data storage
☑ basic keyboard shortcuts
☑ removing of objects/properties
☑ support duplicating objects/properties
☑ inserting of object templates
☑ Save/load project file

delayed till issues resolved(seems some resources required more work than I thought):find common "resource" fields in Orx and try to make visual representation of objects.

I've written this in Qt and C++, so it should be easily portable to whatever platform you choose.

http://www.dailymotion.com/video/xc4h1h_pey-orx-project-organizer_tech


v1.0
_____________
Linux 64 & Windows 32:
http://projects.eyecreate.org/projects/pey/files

Site:
http://eyecreate.orx-project.org
«1

Comments

  • edited February 2010
    This is looking great! :D

    I'm really looking forward to seeing more of it! Nice work, eyecreate! :)

    And... err... I have to admit I'm totally clueless about the name! ^^
  • edited February 2010
    well, if you have no clue on the name...you can get it as a freebie.
    I wanted to see if I could figure out why Orx was named such, and though I'd do a Google for "define:orx". the first thing, besides Orx itself, that came up was a french commune by that name. So I scrolled down Wikipedia's list of communes nearby and the one Pey stuck out to me. I felt it fit as it was also three letters and the first P could stand for project. :laugh: Well, I guess there isn't much else about it.
  • edited February 2010
    I agree, this looks really nice. Very handy :).

    I see that you'll be able to preview textures, is this done in the orx engine or just qt? Something that'd be really cool is if you could preview animations and animation chains. I guess it could be hard to implement if it's all done in qt.
  • edited February 2010
    the texture preview is done by Qt's QGraphicsView(basically canvas) it can handle all QPixmap accessible files(which is:bmp,gif,jpg,png and a few other specialty formats like xpm) I plan to have some basic sort of animation preview based on a sprite sheet for v1 along with audio preview for sound effects and music.(part of the "visualize resources" in top list) I was working a bit today on keyboard shortcuts(hint, iarwain) and have some interesting ideas cooking there.
  • edited February 2010
    another fun video showcasing the keyboard shortcuts I implemented. I hope this makes it easier for those who find keyboard navigation easier, but let me know if another shortcut is better.

    http://www.dailymotion.com/video/xc4ytq_pey-keyboard-shortcuts_tech
  • edited February 2010
    This is very impressive. I'm happy to see someone make something supporting Orx! It looks like it will definitely be helpful with game projects using Orx!
  • edited February 2010
    I can't wait to use this tool, especially after writing dozens of config files for Mushroom Stew (ok ok, I might be exagerating a bit but you get the idea! ^^).

    When do you plan to have a alpha/beta so we can play around with it, Eyecreate? :)
  • edited February 2010
    I'm glad you are all excited, but I still have a few things before I make an alpha/beta. I want to add a few automation features(like templates) and also audio support and object duplication before I consider it alpha.

    btw, I wanted to share with you one of my personal favorite code pieces from Pey which I'll post below:
    void MainWindow::eatChildren(QTreeWidgetItem *trap){
        while(trap->childCount()>0){
            if(trap->child(trap->childCount()-1)->childCount()>0){
                eatChildren(trap->child(trap->childCount()-1));
            }
            objects.remove(trap->child(trap->childCount()-1)->text(0));
            trap->removeChild(trap->child(trap->childCount()-1));
        }
    }
    

    Anyways, enough of that, I should be working! :laugh:
  • edited February 2010
    eyecreate wrote:
    btw, I wanted to share with you one of my personal favorite code pieces from Pey which I'll post below:
    void MainWindow::eatChildren(QTreeWidgetItem *trap){
        while(trap->childCount()>0){
            if(trap->child(trap->childCount()-1)->childCount()>0){
                eatChildren(trap->child(trap->childCount()-1));
            }
            objects.remove(trap->child(trap->childCount()-1)->text(0));
            trap->removeChild(trap->child(trap->childCount()-1));
        }
    }
    

    Anyways, enough of that, I should be working! :laugh:
    Those analysts that said computer programmers couldn't have fun were nuts. :D

    I can't wait to try this out!
  • edited February 2010
    Okay, after just 600 lines of code, I've gotten to a "beta" point for v1.0. I don't have computer types for all OSes and arches, but that will come later(with some help :cheer: ).
    Current builds are for Windows(32?) and Linux 64. Details on requirements and some quick help info is in the README file in the archives.
    Without further delay, the files await:

    Windows:
    http://www.box.net/shared/36parss3um

    Linux 64:
    http://www.box.net/shared/q9c6e04yy7

    Just to let you know, there is no loading/saving or templates as they all require working INI parsing, which is the last thing before v1.0. Hope this satisfies those who are curious.

    EDIT:Just for people to know, I actually have linked/used Orx's engine itself in this build.(even though it really isn't being used yet) This will allow some interesting things to develop.
  • edited February 2010
    This is great news :).
    Hopefully I'll get some time to look at it this week end.
  • edited February 2010
    Hey there eyecreate! The beta looks good, but I'm having some difficulties.

    First of all, in the windows beta download that you provided, I can't seem to find any readme file; so, I've been using the application a little blindly.

    Secondly, when saving projects, the INI file doesn't seem to be created (is it supposed to be?). Am I not using it right? All I've done is create a few objects with properties and attempt to save them; so, I'm not sure if I did things correctly.

    Anyway, thanks for putting so much effort into this so far!
  • edited February 2010
    :blush: uhm...so it seems that I uploaded the wrong windows version without the README, though the README is also kinda sparse. It should be fixed now if you download it again.

    Yes, as stated at the bottom of the beta post, saving doesn't work, the method to save/load is currently "blacked out" by comments. I know it's a rather important part to actually put Pey to use, but the saving/loading required me implementing some functions in the Orx engine that didn't exist yet, so that had to come first.(Orx didn't have a function to iterate through structure nodes) I just finished coding that this morning and inserted in into my now customized Orx engine, so sometime soon, saving/loading should start coming along.
  • edited February 2010
    Sounds great! Sorry that I missed the part about "Save/Load" being blacked out. That was my fault.
  • edited February 2010
    I've played around with it for a bit now, and it looks really nice. I like that it automatically recognizes properties such as Texture and sound and provides a file browser. It would be nice be able to use that file browser for other properties (it's maybe already possible, but I couldn't find a way).

    One thing that I noticed was that once I had created a first object, I couldn't create new independent objects. I.e. they would always be children to another object. I could move them to the root after though.

    Something that I would love to see in future versions was a way to create several graphic objects given a bunch of files (through the file browser or something similar). It would make it really easy to create animations.

    A bug (?) I noticed was that if I dragged an object to the properties side, that object would be removed. If I only had one object and dragged that to the properties side, they program crashed.

    Anyway, keep up the great work :).
  • edited February 2010
    1. I think I can at some point make it so you can use the file select for other properties, I just picked a few to try it out on to start with.

    2.Due to the way the selection works in the treeview for objects, I'd have to have the code ask you if you wanted the item "top level" but thought there wouldn't be too much need for it when it can be just dropped to that position, plus it would add more things that would ask questions all the time.(I've tried to keep the interface clean so that you can add/remove things without multiple boxes asking you questions. The best way I could think would be add another shortcut key to move an item up(making the move action both mouse and keyboard accessible).

    3.Not sure if you are talking about multiple properties when multiple files selected or make an animation out of multiple files when selected.

    4.I thought it was odd when you mentioned that it was behaving as such, because I thought I specifically coded it so that objects were contained in their own widget. I tried it on my computer, and couldn't duplicate it(I did find dragging a singular object when it is the only one there and letting it go right away crashes it, though. This happens on both OSes) I tried it on my Win7 VM, and I duplicated it, but I don't understand why it disobeys my acceptDrops=False. I'll take a deeper look later, but it may be an upstream bug in QT on Windows.

    Glad you liked the rest, I've really felt torn at times when designing how the program is supposed to work, as I've never really known if what I was doing with the interface was going to make the program hard to use or too clumsy. I feel it currently isn't too bad imho, most of the issues are small things, so I guess it's better than large issues. :D
  • edited February 2010
    eyecreate wrote:
    2.Due to the way the selection works in the treeview for objects, I'd have to have the code ask you if you wanted the item "top level" but thought there wouldn't be too much need for it when it can be just dropped to that position, plus it would add more things that would ask questions all the time.(I've tried to keep the interface clean so that you can add/remove things without multiple boxes asking you questions. The best way I could think would be add another shortcut key to move an item up(making the move action both mouse and keyboard accessible).
    It works fine as it is now. A lot of dialogs asking questions all the time is just irritating :). I just took a few seconds before I realised I could drag the objects in the tree around.
    3.Not sure if you are talking about multiple properties when multiple files selected or make an animation out of multiple files when selected.
    I meant more like: you select a few files in a browser and then creates a object for each of them, similar to:
    [Object1]
    Texture=file1.png
    
    [Object2]
    Texture=file2.png
    
    .
    Glad you liked the rest, I've really felt torn at times when designing how the program is supposed to work, as I've never really known if what I was doing with the interface was going to make the program hard to use or too clumsy. I feel it currently isn't too bad imho, most of the issues are small things, so I guess it's better than large issues. :D
    I like the minimalistic interface. I think that just showing the basic everyday functions and hiding very specific things in perhaps a different view or under some sort of context sensitive view.
  • edited February 2010
    okay, I've gotten most the work before v1.0 done, I'm mostly doing bug/annoyance smashing. Here is a build directly from my computer. A Windows build is now up too.

    v1.0 beta 2
    _____________
    Linux 64:
    http://www.box.net/shared/eom1m2rxyy

    Windows 32:
    http://www.box.net/shared/aylon0xav2
  • edited March 2010
    Except the known bugs, no other bugs have been discovered, so beta2 is v1.0. v1.0 is a good starting place for this project in that it has all the basic functionality needed to start being useful. However, my original idea will hopefully be more realized in v2.0, which will add some features to help go from data to code and will have a back-end re-factor cleanup. Details are in the first post.
  • edited March 2010
    Great! Looking forward the v2.0. =)

    Also I wanted to apologize for not having integrated the code you sent me. I completely forgot last week end as I was focused on the iPhone port. I'll do it during the week and keep you informed. =)
  • edited April 2010
    This is awesome. I love the simplicity (and needless to say, usefulness) of the whole thing.

    One thing I've noticed: I have Pey installed in its own independant folder, outside of any orx project. When I use the file browser to select a path, the path that appears in the end is absolute. It would be very handy if the paths were instead relative to the emplacement of the .ini file that's being edited. Same goes for the default folder when the file browser opens.

    Anyway, I really like where this is going. The lack of an undo function at this point is perharps the only major drawback of editing ini files with Pey. I shall try it out when making improvements on DragonCube and give you some more feedback : )
  • edited April 2010
    Thanks for the feedback, I haven't been working on this as much recently, as I've been gearing up for a possible Google Summer of Code(and another mystery project), but I have partial relative folder support. I believe if you put in your own relative folder path(relative to the exe) it will work fine, but I haven't yet changed the file selector to behave like such.

    An undo function is something from the start I had wanted to implement, but since it requires a hook into an item changes, and some changes have no good hook for(dragging objects on the left, the only way to detect what happened is actually to look for "selection changed", I believe)so it's a little tricky, hence why it isn't there yet.

    One cool thing is that these "distraction projects" I mentioned above(GSoC and mystery project), no matter which one succeeds(or both) the code will most likely be reused into Pey, which will yield some awesome features, so keep an eye out, as I have plans for Pey's future. :D
  • edited April 2010
    Great to see you found a GSoC project. What will it be then?

    I'm really looking forward the next steps for Pey. I'm sure a lot of people will appreciate this tool.
    Btw, do you want me to open a FTP account on orx's website for you so that you can easily publish things related to Pey?
  • edited April 2010
    well, if I get accepted, I should be working on this:
    http://docs.google.com/View?id=dcx3nsnj_75gqdrcrcc
    Some of the stuff, especially related to diagrams and what-not were added last minute and are not a final representation of the format.(it is a proposal after all) :D

    An ftp would be great, as I could then keep my Pey files, which are related to Orx, in one place.
  • edited April 2010
    I just read through your proposal, looks good. I wish you luck getting accepted. I also stumbled through to your blog as well. I like the concept, or ideal behind why you're building up Pey. I've contemplated such ideas myself on numerous occasions, but have never actually gotten around to implementation haha.

    Looking forward to seeing what you'll do with this in the long run. You've certainly got a nice start going.
  • edited April 2010
    Thanks, I hope to see Pey turn out how I originally plan!
  • edited October 2010
    Wow, it's been a while since I've been here. GSoC took up all my time this summer and now I'm back at university. I'm hoping to try and put some more effort into Pey again along with my game project.
  • edited October 2010
    Welcome back!

    Looking forward to some Pey new features. =)
    How did GSoC go?
  • edited October 2010
    It went pretty well. You can read my summary posts on my blog here:
    blog.eyecreate.org
    Pardon if it's slow, it's a low end server and it has minecraft running too.(That thing always takes over 50% available ram) :p
  • edited April 2011
    my colleague made a pey-like editor used qt, but it only could be compiled as window.
    I promise I will open source it one day, but not now. the code now is mess up.

    you could simply put the .ini into the demo folder to see the whole structure of the config, Or modify the editor's .ini to set the project's base path.

    Besides, for it is based on qt, To open it in xp, it seems to need
    a patch or plugin to be installed to the windows. But this patch won't be required if vs 2008 have been installed.
    moreover it is Chinese version, but I think it won't affect your use. we will release English version very soon.

    Thank you,enjoy it..
    https://forum.orx-project.org/uploads/legacy/fbfiles/files/qt_pey_like_editor.zip
  • edited April 2011
    I'd be very interested in trying that editor myself! Do you have a link?
  • edited April 2011
    sorry because of the 5MB limit I have to compact and remove some more.
    this is not just a pey editor, it is a media product of a editor with full feature. But I don't when it will finish. no much time on it. I am sorry.
  • edited April 2011
    Don't forget that you can use the FTP account you have on this site that links to laschweinski.orx-project.org
  • edited April 2011
    Pretty neat! Parts of it remind me of some of the plans I had for Pey. Good to see someone else thought it was an important thing to make. Reminds me, I need to spend some more time on Pey this week. :)
  • edited May 2011
    laschweinski wrote:
    my colleague made a pey-like editor used qt, but it only could be compiled as window.
    I promise I will open source it one day, but not now. the code now is mess up.

    Hi laschweinski, I only just downloaded this for the first time and was very impressed! We desperately need something like this. The Chinese in the app makes it difficult to understand what works and what doesn't. Is the english version any closer?

    eyecreate, have you had much time for pey lately?

    Holding hopes for both apps. Orx application configs can become tangled webs if you're not organised.
  • edited May 2011
    I've been highly distracted by my new gadget recently so I haven't had the chance to hunt down what was causing compile errors when using the newer Orx engine. I think I'm going to try the official 1.3rc soon to see if that changes anything from the last SVN I took.
  • edited May 2011
    The svn currently is very similar to the 1.3rc0. It only has a new curve for FXs named smoother using the equation 6x^5 - 15x^4 + 10 x^3 giving 0 for second derivated term at extremities, whereas the smooth curve doesn't (3x^2-2x^3 only has 0 for the 1st derivated term at extremities). It also has a cleaner code for the profiler display that will adapt to always use a landscape orientation.

    So it's likely you'll still have your compile error unless there's something I missed somewhere. =)
    Can you give me more details about that error?
  • edited May 2011
    Here or by the email conversation we started before?
  • edited May 2011
    Ah you mean the linker errors with the missing dlmalloc symbols then?

    Sorry thought you had new compiler errors. I'm still not sure why the symbols get stripped for you. Have you tried to get the preprocessed output for orxMemory.c and see if the dlmalloc code was correctly embedded in it?
  • edited May 2011
    oh yeah, the english version was created a long time ago.
    I forgot to put it here.
    here is the english version. https://forum.orx-project.org/uploads/legacy/fbfiles/files/orx__________________.zip
  • edited May 2011
    Haha, can't believe it, 1.3rc0 doesn't have the linking issue. No idea what was causing it in the revision I was using from SVN. Now I get segfaults in my own code. Time to get a digging!
  • edited May 2011
    Sooo, how many decades ago did you sync the svn? :D
  • edited November 2011
    I'm sorry to say that at this point, Pey is on indefinite hold. Other areas have needed my attention more and I have reached a difficult refactoring of my code. I need to focus more on writing the game I originally set out to make in Orx instead of Pey since my time is limited. If someone would like source code of current status, I can provide.
  • edited November 2011
    I'm sorry to hear that but the lack of time is something I know all too well.
    As for the source, I'd be interested and I can host them on orx's site in your own space, if you want.
  • edited December 2011
    sent you the code.
  • edited December 2011
    Thanks! I got your email and I'll publish the source this week end.
  • edited February 2012
    Nice hotkey for the "about" window :)
  • edited February 2012
    Doh, it's already been 2 months.
    Really sorry about that. :(
    I'll try hard to put the sources online before the end of the week. I can do it!
  • edited February 2012
    @Mystic: i put that in when making Pey more shortcut friendly. i was putting shorcuts for the other menu items and figured it was one combo nobody was already using. ;-)

    @iarwain: it's waited til now, it can wait the rest of this week. :-)
  • edited February 2012
    And here it is online: https://bitbucket.org/iarwain/pey

    That's the same repository that will contain orx when I'm done with the next version (ie. after finishing the skeletal animation support).

    The project is currently looking for a dev/maintainer so feel free to contact me if you're interested and I'll give you write access to the repository (or simply clone it on your own account if you'd rather do that).

    @Eyecreate: Sorry for such a long delay, really. :(
Sign In or Register to comment.