GPWiki.org
GPWiki.org
It is currently Wed May 22, 2013 8:15 pm

All times are UTC




Post new topic Reply to topic  [ 76 posts ]  Go to page 1, 2, 3, 4  Next
Author Message
 Post subject: Machina Engine - Project
PostPosted: Sun Jan 01, 2012 8:12 pm 
Source Code Swashbuckler
User avatar

Joined: Wed Nov 09, 2011 3:58 am
Posts: 199
Location: Brazil
This Game Engine is will offers an drag-and-drop interface to make 2D, 3D and vectorial games. The project's name is still undefined.

UPDATE: The project name is "Machina Engine".

So far, the Game Engine Library has the following features:

- Has its own script language(with one is not needed to learn);
- Develop classes, with a hierarchical system;
- Develop/Create sprites;
- The sprite system is being constructed to be flexible. To make it able in the future to choice between a 2D, 3D, or a vectorial sprite
- Create rooms, the maps of the game;
- Has its own resource stream management. With can create encrypted(or not, if the user want to) storage files.
- File stream management;

The IDE, so far, has the following features:
- Can use the fully the script language system;
- Create, manipulate, and destroy classes;
- Create, and destroy sprites;
- Create, manipulate, and destroy rooms(maps);
- Manipulate the main project configurations, like screen mode, resolution, define with on is the global base class;

IDE Screenshots:
- New project dialog: Link - with has some templates
- Project active:Link
- Class management: Link - It is possible to see the "Develop Class" window and "Source Code" window, with shows separately the code of the class;
- Sprite management: Link - With still can't manipulate the sprites;
- Room management: Link - Also, it still can't manipulate the rooms, but the capability to manage the map layers and matrix is already debugged and tested - working fine;

This is it. I can say that the hardest part is over - the creation of a system to make interpretation of the script language. The others systems(with you can see in the left frame of the window) are still not done, but they will be easy to create(the management tools of these system will be similar - in a programming level - to the class management tool).

Thank you all! I hope to "finish"(not literally, since I plan to update it constantly) this project this year! =)

EDIT/UPDATE: The next step is to make the IDE able to manager Data Files. These Data Files can contain most of the content of the game(rooms, sprites, texts, variables, etc).
- If the developer want to, it will be possible to attach a Data File to the final executable, which means that all content of the game may be only one file, the "*.exe".
- Or not. The Data files can be a good way to manage everything. For example, if the game is a strategy game, each scenario can be stored in your own Data File. Or all scenarios could be in only one Data File.

_________________
"Life finds a way." - Ian Malcolm
My WebBlog: PixelDeveloper
English is not my native language, so excuse me for any writing mistakes.


Last edited by FelipeFS on Mon Feb 06, 2012 8:13 pm, edited 3 times in total.

Top
 Profile  
 
 Post subject: Re: Game Engine and IDE
PostPosted: Sun Jan 01, 2012 9:09 pm 
Dexterous Droid
User avatar

Joined: Wed Aug 18, 2004 7:40 pm
Posts: 3735
Location: South Africa
That all looks impressive! Didn't realise you had already come this far when you made that other post :) Are you intending to commercialise this?

_________________
Whatever the mind can conceive and believe, it can achieve


Top
 Profile  
 
 Post subject: Re: Game Engine and IDE
PostPosted: Sun Jan 01, 2012 10:19 pm 
Source Code Swashbuckler
User avatar

Joined: Wed Nov 09, 2011 3:58 am
Posts: 199
Location: Brazil
IGTHORN: Thank you very much! I do not know yet about commercialise it, but there is the possibility to make it freeware, or receiving donations, or do it at a very, very low price. =)

_________________
"Life finds a way." - Ian Malcolm
My WebBlog: PixelDeveloper
English is not my native language, so excuse me for any writing mistakes.


Top
 Profile  
 
 Post subject: Re: Game Engine and IDE
PostPosted: Mon Jan 02, 2012 3:36 pm 
Dexterous Droid
User avatar

Joined: Wed Aug 18, 2004 7:40 pm
Posts: 3735
Location: South Africa
Maybe you could make it free and providing support for people who donate. Whatever you decide, good luck!

I'm curious how long it took to create this? Was it your own solo project?

_________________
Whatever the mind can conceive and believe, it can achieve


Top
 Profile  
 
 Post subject: Re: Game Engine and IDE
PostPosted: Mon Jan 02, 2012 7:28 pm 
Source Code Swashbuckler
User avatar

Joined: Wed Nov 09, 2011 3:58 am
Posts: 199
Location: Brazil
It is a solo project, I started this in August 2011(4 months), and As I said before, most of the work was in the script language interpreter.

I could have done it faster if it wasn't the academical studies at my University.

_________________
"Life finds a way." - Ian Malcolm
My WebBlog: PixelDeveloper
English is not my native language, so excuse me for any writing mistakes.


Top
 Profile  
 
 Post subject: Re: Game Engine and IDE
PostPosted: Thu Jan 05, 2012 3:31 am 
Source Code Swashbuckler
User avatar

Joined: Wed Nov 09, 2011 3:58 am
Posts: 199
Location: Brazil
I'm happy to say that the project is moving on, it's advancing. The new update is in the room(map) editor. See below a picture:

Picture on PicasaWeb

As you can see, now it is possible to load a map, next step is make it possible to manipulate the map. Some notes about the interface:

Picture on PicasaWeb

The note about "intermediate tiles" is that it is not possible yet to see they intermediately when you move the scrollbars, if you move the scrollbar, the viewer jumps to the next tile. This explanation was a mess, but I think you understand.

Thank you for the attention!

_________________
"Life finds a way." - Ian Malcolm
My WebBlog: PixelDeveloper
English is not my native language, so excuse me for any writing mistakes.


Top
 Profile  
 
PostPosted: Sat Jan 07, 2012 8:30 pm 
Source Code Swashbuckler
User avatar

Joined: Wed Nov 09, 2011 3:58 am
Posts: 199
Location: Brazil
Does anyone know if I can use the Free Pascal and/or MingW compiler to compile the projects developed by my Game Engine/IDE? I think I can, because they are GNU, but I am not sure.

The initial idea was that my program(the IDE) would do the convertion the source-code of the games( written in my script language) that I developed with the IDE to Object Pascal language, and then the compiler chosen by the user would do the rest of the work (to create the executable file). Free Pascal and MingW are the two compilers I intend to put as compilers for mysoftware, like the Code::Blocks, the user could choose between them.

_________________
"Life finds a way." - Ian Malcolm
My WebBlog: PixelDeveloper
English is not my native language, so excuse me for any writing mistakes.


Top
 Profile  
 
PostPosted: Sat Jan 07, 2012 9:30 pm 
Bytewise

Joined: Sun Oct 16, 2011 3:09 pm
Posts: 277
Location: Here (where else?)
Before I start, I am not a lawyer, nor do I understand the finer details, so what I write here may be completely wrong.
If I were you, I'd invest some time reading about these things, and/or asking a few people that know the answers about it.

With respect to the compiler itself: If you plan to bundle the compiler as part of your program (that is, distribute the compiler in binary form), you will also need to supply the source code, I think (afaik, just pointing to some URL is not enough).


As for use of the compiler for your generated code: The devil is not in the compiler but in the runtime support library.

There is no problem with converting program code to compiled form without linking (ie object files) afaik. This is just usage of a compiler, you are not changing or modifying the compiler.

However, compilers tend to make assumptions about support code in the runtime environment, eg gcc assumes gnu libc. The compilers generate references to that environment.
Now when you link your compiled form to that library to make an executable, your code becomes part of the runtime environment (at least to some people), and the license of the runtime environment must be obeyed.

In other words, if I use the compilers, according to some people, my program has to use the license of the runtime environment.

This is what the entire GNU linking problem discussion is about.
I don't know whether the above is true or not, but it seems serious enough to me, to make sure it is legal to do what you want to do.

_________________
My project: Messing about in FreeRCT, dev blog, and IRC #freerct at oftc.net


Top
 Profile  
 
PostPosted: Sun Jan 08, 2012 12:46 am 
Harmlessness does no harm
User avatar

Joined: Tue Sep 14, 2004 8:37 pm
Posts: 3807
Location: Ferriday, LA, US
FelipeFS wrote:
Does anyone know if I can use the Free Pascal and/or MingW compiler to compile the projects developed by my Game Engine/IDE? I think I can, because they are GNU, but I am not sure.

The initial idea was that my program(the IDE) would do the convertion the source-code of the games( written in my script language) that I developed with the IDE to Object Pascal language, and then the compiler chosen by the user would do the rest of the work (to create the executable file). Free Pascal and MingW are the two compilers I intend to put as compilers for mysoftware, like the Code::Blocks, the user could choose between them.

Ah, another victim of the GPL myth.

As much as the GNU people would like you to believe their software is "free as in speech," it isn't quite so. By using GPL-licensed code in a project, you are required to distribute all the code that is used to create your application. The only way around this is to distribute your IDE without the compilers. Either make your own, and/or write an interface that will allow a user to point your software to the appropriate compiler -- in other words, you supply the IDE, the user downloads and installs the compiler on their own.

If you plan to release your IDE as free, open-source software, it's not an issue. If you want your program to be closed-source, you don't want to rely on any GPL code or libraries -- instead, opt for software licensed under something like the X11, MIT, or BSD licenses. Anything else, read the license terms. This isn't you installing software on your PC, where you can just click "I Agree" without reading anything. You have to cover all your bases and read through everything. If you can't understand any of it (or can't be bothered to trawl through an endless sea of legal jargon), hire a business lawyer with the appropriate training.

There ain't no such thing as a free lunch. The GPL does nothing to counter that fact.

_________________
What most people don't understand about "enlightenment" is that it is not an end-goal; but where you find yourself just before taking a new "first step."


Top
 Profile  
 
PostPosted: Sun Jan 08, 2012 2:24 am 
Source Code Swashbuckler
User avatar

Joined: Wed Nov 09, 2011 3:58 am
Posts: 199
Location: Brazil
Thank you very much guys!!!

rotInMilc wrote:
instead, opt for software licensed under something like the X11, MIT, or BSD licenses.

Thanks for the info!

rotInMilc wrote:
interface that will allow a user to point your software to the appropriate compiler -- in other words, you supply the IDE, the user downloads and installs the compiler on their own.

That is what my IDE does. I don't want to make the compiler embedded in my software, the user will establish the compiler it wants, then the IDE will execute the compiler to make the executable of the game. So, I understood: I can't embed the compiler (or it's source code) to my IDE.


Now, a diagram showing what I want:
Image


Alberth wrote:
There is no problem with converting program code to compiled form without linking (ie object files) afaik. This is just usage of a compiler, you are not changing or modifying the compiler.


- Related to Alberth quote... In the Step IV, if the source-code of the game uses the function WriteLn or printf(both write strings in the console), wich are in the standard libraries of their compilers, in other words if the source-code is linked to one of these libraries, the generated game will be "affected" by the GPL???

EDIT:
In this page Link it is said that softwares made with Free Pascal compiler can be commercialised and closed-source, because it "come under a modified Library GNU Public License (LGPL)" even if I use the libraries, I just cant modify them. :yeah

Thank you both for taking your time answering my questions. ;)

_________________
"Life finds a way." - Ian Malcolm
My WebBlog: PixelDeveloper
English is not my native language, so excuse me for any writing mistakes.


Top
 Profile  
 
PostPosted: Sun Jan 08, 2012 10:16 am 
Bytewise

Joined: Sun Oct 16, 2011 3:09 pm
Posts: 277
Location: Here (where else?)
Indeed, LGPL gives you somewhat more freedom. How much, or whether your case falls at the right side of the boundary, I don't know. Read the License carefully.

The simple way out, I think, is to drop the compiler.
In other words, you supply an IDE that generates Pascal code, that's it.

The user is responsible for ensuring he has a Pascal compiler that he can use. So if I want to do a commercial project, I can pick a compiler that allows me to do so.

That leaves you with two problems:
- The licensing issue of your IDE source code if you distribute your IDE in binary form.
- The license of the files generated with your program.


Out of curiosity, why do you generate Pascal? It seems a not much used language to me.

_________________
My project: Messing about in FreeRCT, dev blog, and IRC #freerct at oftc.net


Top
 Profile  
 
PostPosted: Sun Jan 08, 2012 4:01 pm 
Source Code Swashbuckler
User avatar

Joined: Wed Nov 09, 2011 3:58 am
Posts: 199
Location: Brazil
Alberth wrote:
Out of curiosity, why do you generate Pascal? It seems a not much used language to me.


There are no specific reasons for this. I am thinking about generate the code in C++ also. But the FCL library is a good reason to generate it in Pascal.

Alberth wrote:
- The license of the files generated with your program.


but now, that you raised this issue, I'm really in doubt about how I will do it. Looks like I will have to create my own compiler...
If so, I don't care if it will be a lot of hard work, I just wanted to take the easier way.

The good part is that as far I know, to make a compiler, is needded a syntax scanner, something I already have(I create my syntax scanner to make the IDE able to read the script language).

(I will make a tutorial teaching how to make this syntax scanner, it is very useful for any game programmer!)

_________________
"Life finds a way." - Ian Malcolm
My WebBlog: PixelDeveloper
English is not my native language, so excuse me for any writing mistakes.


Top
 Profile  
 
PostPosted: Sun Jan 08, 2012 5:14 pm 
Bytewise

Joined: Sun Oct 16, 2011 3:09 pm
Posts: 277
Location: Here (where else?)
Quote:
The good part is that as far I know, to make a compiler, is needded a syntax scanner, something I already have(I create my syntax scanner to make the IDE able to read the script language).
Did you use a scanner generator?

_________________
My project: Messing about in FreeRCT, dev blog, and IRC #freerct at oftc.net


Top
 Profile  
 
PostPosted: Sun Jan 08, 2012 5:26 pm 
Source Code Swashbuckler
User avatar

Joined: Wed Nov 09, 2011 3:58 am
Posts: 199
Location: Brazil
I wrote a class that can scan any kind of syntax(The way the class responds to the scanned words is the programmer who choose).

Everything in my IDE is using this class... to load, save, and manipulate maps, classes, sprites... everything.

_________________
"Life finds a way." - Ian Malcolm
My WebBlog: PixelDeveloper
English is not my native language, so excuse me for any writing mistakes.


Top
 Profile  
 
PostPosted: Sun Jan 08, 2012 5:43 pm 
Bytewise

Joined: Sun Oct 16, 2011 3:09 pm
Posts: 277
Location: Here (where else?)
FelipeFS wrote:
I wrote a class that can scan any kind of syntax
:O
You re-invented parsers thus ;)

(and I'd be a bit careful with claiming "any kind of syntax", parsing theory clearly defines different classes of complexity in grammars, where the most complex is more complicated than I care to remember :p )

It'd be interesting to see what you made.

_________________
My project: Messing about in FreeRCT, dev blog, and IRC #freerct at oftc.net


Top
 Profile  
 
PostPosted: Mon Jan 09, 2012 12:51 am 
Prolific Poster

Joined: Sun Jan 08, 2012 10:26 pm
Posts: 22
Wow :eek Extremely impressive! Although it does kinda remind of that Game Maker program. I look forward to using this some day :)

Also, In my opinion, the colour scheme does need a bit of a change :) That's probably the only thinkable con at the moment :D

Good luck!

_________________
Ghost of John Trailer:

http://www.youtube.com/watch?v=W1Ddgec36Jk&feature=youtu.be


Top
 Profile  
 
PostPosted: Mon Jan 09, 2012 1:54 am 
Source Code Swashbuckler
User avatar

Joined: Wed Nov 09, 2011 3:58 am
Posts: 199
Location: Brazil
Thanks. Game Maker is the "interface inspiration". But Construct, RPG Maker are also my inspiration.

EDIT: When I started this project, I kept in mind to use all the good features of these programs, and remove the bad ones. For example:

- Game Maker has a good "Class Manager", but a bad input/Output system.
- Construct has a good Input/Output system, but a bad "Class Manager".
- RPG Maker has a good "Project Manager"(Project Database, in "Project" menu), but is very limited elsewhere.

So my program will have the following features:
- Good I/O.
- Good "Class Manager".
- A extensive Project Manager.

_________________
"Life finds a way." - Ian Malcolm
My WebBlog: PixelDeveloper
English is not my native language, so excuse me for any writing mistakes.


Top
 Profile  
 
PostPosted: Mon Jan 09, 2012 3:03 am 
Source Code Swashbuckler
User avatar

Joined: Wed Nov 09, 2011 3:58 am
Posts: 199
Location: Brazil
UPDATE: I have news! Actually, I have screenshots:

Screenshot 01
Screenshot 02

The map size is 256x256. So it begins at 0x0, and ends at 255x255.

Screenshot 01:
- The cursor is over a tile of the map, it makes the tile highlighted by a red square.
- In the left panel, there is a square selecting the texture tile(coordinates 1x1) in the tileset.

Screenshot 02:
- Again, the cursor is over a tile of the map, the last tile(255x255).
- In the left panel, there is a square selecting multiples the texture tiles(begins at coordinates 1x1, ends at 2x3) in the tileset.

(The cursor is not visible because keyboard key printscreen don't capture it).

_________________
"Life finds a way." - Ian Malcolm
My WebBlog: PixelDeveloper
English is not my native language, so excuse me for any writing mistakes.


Top
 Profile  
 
PostPosted: Mon Jan 09, 2012 3:13 am 
Funky Monkey

Joined: Thu Sep 09, 2004 1:17 pm
Posts: 1551
Location: burrowed
why is it restricted to that size? doesn't seem necessary. I'd rather see unlimited or at least reasonably high map boundaries when creating an allround game editor.

also i don't quite like the editor view of the map. it seems very unhandy to use from looking at those shots. have you tried creating testmaps at a decent detail stage so you actually have a feel for how your editor works? it might help get usability down. don't underestimate that because artists and designers will get mad if they have to do a lot of cumbersome work :P

apart from that, good work man

_________________
Long pork is people!

wzl's burrow


Top
 Profile  
 
PostPosted: Mon Jan 09, 2012 3:49 am 
Source Code Swashbuckler
User avatar

Joined: Wed Nov 09, 2011 3:58 am
Posts: 199
Location: Brazil
weezl wrote:
why is it restricted to that size? doesn't seem necessary. I'd rather see unlimited or at least reasonably high map boundaries when creating an allround game editor.

I did not understood what exactly you pointed to about the size. If it is about the 256x256 size, this size is the size loaded in the game project file, the user can change it. If it is about the interface, the left frame, called "Game Engine - Manager" can be hidden, increasing the size of the screen.

EDIT: OH YEAH, and the tile size can be changed too. It's 32x32 pixels in this example.

weezl wrote:
it seems very unhandy to use from looking at those shots

if you mean the rectangles(and that coordinates) drawn every tile in the map, they are only for test.

weezl wrote:
don't underestimate that because artists and designers will get mad if they have to do a lot of cumbersome work

It is the second complaint about the way the interface looks. Definitely I'll try to give it a better look and improved it.

Thanks, man!

_________________
"Life finds a way." - Ian Malcolm
My WebBlog: PixelDeveloper
English is not my native language, so excuse me for any writing mistakes.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 76 posts ]  Go to page 1, 2, 3, 4  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group