Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

Geex - Edit, Play, Game - 2D Game for PC/Xbox

Bixel

Member

I got a question, I've been writing my own RPG engine for a while now based off of these tuts > http://xnagpa.net/index.html. I mostly been working on menus, itemmaker tool, monstermaker tool, combat, inventory, I've just now started to move to the "map/level" screen. At the moment I am not sure what direction I am going to go with the art - so I use RMXP tilesets as a temporary solution only, in the future I might do Etrian Odyssey style world exploration or Odin Sphere style world exploration. I've been using Tiled > http://www.mapeditor.org/ for my map editor and Nick Gravelyn's reader library http://tiledlib.codeplex.com/, to load the map into XNA.


Tiled is pretty good - but its missing a lot of features that RMXP has like - auto tiles, animated tiles, parallax scrolling...

I am trying to save time by NOT making a map editor -

- how much of this depends on RMXP? For instance I have used RMXP a lot in the past, but I don't want to use any of it's game mechanics, monsters, combat system or character system since I've already developed my own. Can I use RMXP as a map editor only? and define my own Event system?
 
Sure, you would have to take off the part of code that manages game mechanism you don't like, that's it.
The map file we take from rmxp and import to Geex would get all the events logic and commands in it. But if you create no event on your map, and that you take off the event management code, I see no side effect or problem.

We have integrated all rmxp map option, panorama, fogs, autotiles, screen tone, hue transformation, priorities, tags etc
 

Bixel

Member

You guys have done a lot of work.. very encouraging stuff. I found something else I might try instead, but I will be crediting Geex for a lot stuff your team has done that I will be using. I found this, done in native C# that will probably be more to my liking. >> http://tide.codeplex.com/

There are some things here you should look at - since you are very close to having everything you need to create your own editor.

You have done so much so far - but it feels to me you can gain more functionality if you made your own editor - I think your team will make awesome games, but if you can make your own editor you will open up possibilities, more layers, larger more complete tilesets, variable tileset sizes or full on non-tileset type level creation. Check out Odin Sphere > http://www.atlus.com/odinsphere/
 
that's our Goal mate, build on our own editor...I have my hands on it already :) but there's not much more than a tile editor so far, we still need for event management
Ultimately tiles editor is not really what's going to make a real big difference for your game, they're all providing the more or less same functionnalities. That's why we choose to release the engine, even though the Editor is not ready.
I believe it's a no-choice to focus on the editor, it's just a tool, it could be even misleading as the more functionnality, layers etc you get, the more your game could turn into a very complicated one to build.
Excellent game are made with simple tool :)

I've also seen lots of thread regarding new tile engine, it always turn the same way : ultimately users are just requesting for more and more functionnality, like they would thing the tool would do the game for us :)

I know it's not your case as I saw your project and you clearly put Creativity as a priority
Great game by the way
 

Bixel

Member

Yes, I should have remembered that philosophy. My purpose for making my RPG is to show the combat system, character system, and game-mechanics, and to have them to be really addictive and fun and interactive. I want my game-engine to be completely 100% not connected to any Graphical Art Scheme, so if I suddenly got a tun of money I could hire UDK designers and artists and make a 3D game with RPG Engine sitting ontop of the graphics. Or conversely I could have my RPG Engine running on an Android of iPad with the simplest of graphics.

http://queue.acm.org/detail.cfm?id=1883592
check this out

"We had given the development group a charter to come up with new software, and a year later I found out that that whole group had been subverted into providing tools for the existing production"

this is an example of people working and working on more functionality - however - its locked into a limited area, no matter how much functionality there would be put into the area it would only serve a niche group and at the same time stifle new artistic energy, I would be sad if I was still doing 2D RMXP style stuff 5 years from now. I think this is why the JRPGS have been pretty stagnant. Don't get wrong I love my JRPGS, I collect them, however I can only play 25% into the game before I recognize the cookie-cutter mechanics and stamp made story arcs.
 
hop, little news with a video, my capture tool is not that great so it does not render how really smooth is the engine. Sorry for that

What's new ?
Hue rotation per sprite, tone change on mp and sprite, code optimisation for xbox, more than 50 event commnds to customise your game, a particle system, pixel collision and move

Now we start the testing part. We should be releasing Geex for Christmas starting with source code and programmer, so we identify the last bugs and improve ergonomy, usability etc

We should also release a demo-game for Christmas (The Fall of Gods) to show what could be done with the engine
Here's the video (Don't mind the violet it'll be replaced by black of course^^)

http://www.vimeo.com/17051075
 
Since you're using C#, have you looked at projects like IronRuby? I'm not sure how much of the DLR is supported on the XBox 360, but it's at least worth a look if your aim is RGSS parity; a start is a language modeled after Ruby itself.
 
Hi, yep I knew this project
However our goal is not a RGSS parity. I don't see any value to interpret ruby in c# sorry

The only link we have is more with RPG Maker editor rather than the rmxp ruby. Basically, we can import the rxdata into our engine, and it'll interpret them in a correct manner.
But we'll be developping our own c# script on top of that
 
I've been following this project for a while now and all i can say is that it's awesome ;) i'd like to know some more about how we can translate scripts like custom battle scripts so they also work with XNA. Is it hard to do?
 
Hi, thanks for your support mate
Normally the translation process is easied because
1- You used the same name convention for the RGSS like module. So you find Input, Audio, Graphics, Sprite, Bitmap, Window etc etc
2- We used the "almost" same structure for the RPG script. So you have Spriteset_Map, Scene_Menu, Window_message etc etc
(3- You have the forum at http://www.geexpowered.com for question and support :) )

So basically, it's only a question of changing from ruby syntax to c#

here's a example you can see in the video in my previous post:
I had a RingMenu script in my game, here is the Refresh metho in ruby
Code:
  #--------------------------------------------------------------------------

  # refresh

  #--------------------------------------------------------------------------

  def refresh

    self.contents.clear

    case @mode

    when MODE_START

      refresh_start

    when MODE_WAIT

      refresh_wait

    when MODE_MOVER

      refresh_move(1)

    when MODE_MOVEL

      refresh_move(0)

    end

    rect = Rect.new(@cx - 272, @cy + 24, self.contents.width-32, 32)

    rect2=Rect.new(@cx - 271, @cy + 25, self.contents.width-32, 32)

    nb = @items_numbers[@index]

    if nb>1

      self.contents.font.color = Color.new(0,0,0,255)

      self.contents.draw_text(rect2, @items_list[@index].name + ":" + nb.to_s,1)

      self.contents.font.color = EL.font_color

      self.contents.draw_text(rect, @items_list[@index].name + ":" + nb.to_s,1)

    else

      self.contents.font.color = Color.new(0,0,0,255)

      self.contents.draw_text(rect2, @items_list[@index].name,1)

      self.contents.font.color = EL.font_color

      self.contents.draw_text(rect, @items_list[@index].name,1)

    end

  end

And here's what I have in c#:
Code:
        /// <summary>

        /// Clear menu and refresh content

        /// </summary>

        void Refresh()

        {

            contents.clear();

            switch(mode)

            {

                case ModeStart:

                    RefreshStart();

                    break;

                case ModeWait:

                    RefreshWait();

                    break;

                case ModeMoveRight:

                    RefreshMoveRight();

                    break;

                case ModeMoveLeft:

                    RefreshMoveLeft();

                    break;

            }

            Rectangle rect1 = new Rectangle(cx - RingRadius, cy, RingRadius*2, 32);

            Rectangle rect2 = new Rectangle(cx - RingRadius + 1, cy + 1, RingRadius*2, 32);

            int nb = itemsQuantity[index];

            if (nb > 1)

            {

                contents.font.color = Color.Black;

                contents.draw_text(rect1, itemsList[index].name + ":" + nb);

                contents.font.color = Color.White;

                contents.draw_text(rect2, itemsList[index].name + ":" + nb);

            }

            else

            {

                contents.font.color = Color.Black;

                contents.draw_text(rect2, itemsList[index].name,1);

                contents.font.color = Color.White;

                contents.draw_text(rect1, itemsList[index].name, 1);

            }

        }

 

Pretty straightforward no? I could have done the exact same method, but in this example I felt like doing 2 move method instead of refresh_move(int)

In other word you just have to learn the c# syntax (that's easy and Visual Studio is getting things easier)
No the Geex exception in the code and structure, if you come from Ruby/RMXP (for instance some class are now static : Tilemanager, GameMap, GameSystem etc

For those you want to go further talking about coding differences :
The real changing point would be, because of c#, you can't use stuff like the Ruby aliases. So, for instance I made 2 custom scripts so far, a RingMenu to replace Menus, and a ActionBattleSystem (for my arpg). In Ruby you can code everything in the same script, and use aliases to modify the existing class you want to change/update. In c#, if you want to add code to existing class, that's easy (partial will help), if you want to rewrite an existing class, well you have several options, eahc would depend on how you want to build your code:
- Use 'using'
- Use #define and #if condition (that's what I do so far)
- well, you can still change the method directly in the class itself of course :) but then you have bits of your new script split in many classes

But it's a bit soon to talk about that and I shall write a tutorial for the rubyiste. The c#iste would know already

I hope it answers your question
 
I have to admit, the idea of playing a game I made on the Xbox is quite enticing. This looks interesting, but I notice all the documentation is in French. Any chance of an English version? I'd like to know what all the new commands are, and how they work.
 
Yeah, good point. We have an English doc, but I have to admit it's not as good as the french one...or bad
Anyway, we now give priority to anything we doc to English (like the Geex tutorial), looking at the donator and supporter it makes more sense

I updated the link with the english version anyway : http://www.geexpowered.com/documentatio ... /index.htm

I shall review the content as soon as possible
 
I hope it answers your question
yes it does :)
I'm not really good with rgss, i can only make changes on existing scripts or create small things like windows etc. I do know some C# and java (same syntax, right?) So i might give it a try one day.
 
I'm not really good with rgss, i can only make changes on existing scripts or create small things like windows etc
well in that case you could be doing the same with Geex. Indeed we give the whole code, so it's up to you if you want to modify a color here, a window size there etc


PS :

I have updated the first post with latest news
 
So I've been messing around with Geex Make. I really like the intergration of the new event command, extremely useful. I was wondering if the editor was still going to be available this month or not. I was also wondering, is there a way to break the 40 FPS limit? Performance would be my number one reason to make the switch, I need a game engine capable of handling lots of events with no lag. Oh, one last question too. Pixelmovement is nice and all, but why no 8-directional movement?
 
Hi Ace
Thanks for the feedback regarding geex make, that's appreaciated
Geex Make is just a temporarily solution waiting for our own Editor: Geex Edit (to be released 28th of March 2011)
See a screenshot below:
uQaVS.jpg

Now our Engine (Geex Play) is ready and is able to use datas coming from RMXP (including Geex Make command)

So in other words, as soon as we released Geex (beta for coders on the 25th), you'll be able to
- develop your game using rmxp+geex make (then Geex Edit form april on)
- export the datas to Geex Play (our engine)
- customise the code if you want
- run your game on PC or Xbox

Then you'll be entering a "new world". Your game engine will no longer be ruby based, but c# based. And performance wise you will be way higher than rmxp. For instance I run 60 FPS and an old PC with more than 300 events, 160*120 tiles map, pixel collision, shaders, 800*600 resolution etc

PS:
You are right about 8 directions, actually it's already available in Geex Play, I should make the slight change necessary to make it happen in Geex Make...but priority goes to Geex right now
 
Then you'll be entering a "new world". Your game engine will no longer be ruby based, but c# based. And performance wise you will be way higher than rmxp. For instance I run 60 FPS and an old PC with more than 300 events, 160*120 tiles map, pixel collision, shaders, 800*600 resolution etc

Sounds amazing, I can't wait. Just to clarify, I know the Geex Editor is basically going to have a map editor, but is the event editor like in RMXP? I assume if that's the case then the event editor will also include the new event commands. Anyways, keep up the awesome work, I'll keep checking in for updates.
 
Geex Edit IS a map editor so far, but we are working on an event editor. Obviously, the geex make commands will be included. Indeed they are already available in the engine code, so it would be stupid not to add them to the editor, woulnt it :)
 
I'm curious if there will be allowed custom event commands? Where the gui reads a file per say and it implements a button that you click, a custom form pops up and you click okay.

Sorta like say you want to open the actor status instantly without going to a menu. A simple script call would be to do this
Code:
$scene = Scene_Status.new(id)

But what I was thinking maybe you could add your own commands for easier use for other people. So instead of typing in that code, you just have a button that brings up a form and you can choose the actor from. Or is what I just said too confusing.
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top