Level Editor

Announce new projects or updates of Irrlicht Engine related tools, games, and applications.
Also check the Wiki
dlangdev
Posts: 1324
Joined: Tue Aug 07, 2007 7:28 pm
Location: Beaverton OR
Contact:

Post by dlangdev »

pera: quick question...

not sure about your level of proficiency, but here goes...

what are your plans about adding a material manager in the editor.

the reason why i brought this up is because i badly need an editor that can edit multiple materials per node. i can walk the materials for a given node and i should be able to define and set attributes for that material.

so, i need this: one node--many materials.

let me know what your thoughts about it, or am i simply asking way too much for you to handle.

thanks.
Image
pera
Posts: 460
Joined: Wed May 14, 2008 1:05 pm
Location: Novi Sad, Serbia
Contact:

Post by pera »

I wasn't planning on adding such thing, it doesn't sound like priority right now.

But let me see if I understood correctly, Model file contains multiple textures references, so when you load model in the editor, list of available materials (textures) should be shown. User then picks the texture he wants to be used, or adds another texture to the group. Also, he can change attributes like diffuse, ambient, emisive, and such. Is that correct?

Can you write the list of attributes you want changed, and full description (specification) of wanted functionality? (Is it something like you see in IrrEdit?)
JP
Posts: 4526
Joined: Tue Sep 13, 2005 2:56 pm
Location: UK
Contact:

Post by JP »

It seems like a proper modelling program would be able to maybe do the material editing so it's kinda less to do with level editing, though the feature wouldn't hurt if it wasn't too hard to implement.
Image Image Image
pera
Posts: 460
Joined: Wed May 14, 2008 1:05 pm
Location: Novi Sad, Serbia
Contact:

Post by pera »

Plus Im not making just scene editor, but game editor, which means Im gonna put in event triggers, dialogues (converstations), AI, quests, scripting, etc. Lots of work; and scene only you can make in IrrEdit and load later in my Editor.
Jedimace1
Posts: 16
Joined: Fri Aug 01, 2008 12:59 pm

Post by Jedimace1 »

Nice. Maybe some Y movement would help, like the object will slide on top of an object if you pull it over(for like the ability to stack things, like barrels, boxes, whatever). Also, maybe some duplication of objects, and ability to load in terrains(of course) THAT WORK(they don't work in IrrEdit for me). Maybe sky boxes and particles, etc.
Plus Im not making just scene editor, but game editor, which means Im gonna put in event triggers, dialogues (converstations), AI, quests, scripting, etc. Lots of work; and scene only you can make in IrrEdit and load later in my Editor.
So that you create the entire game in the editor, and attach scripts to objects? Or just to code full maps that you load into Irrlicht? And will you eventually make your own map format?
Image
christianclavet
Posts: 1638
Joined: Mon Apr 30, 2007 3:24 am
Location: Montreal, CANADA
Contact:

Post by christianclavet »

Jedimace1, that will surely be implemented with time. It take a long time to implement things so that they look and function correctly.

Pera, I'm still checking your code and found lot of good things there. You've done some interesting stuff with the event handling stuff there. (I still not completely understand it, but you where able to separate its function to different part of your code) Great work! Your coding style is good! :D . Hope, my new coding will be as good as that.

My viewport class is going on well, I only miss viewport scaling/moving from the mouse. But before I've had to redo the event handling and separate it the way you've done, so the mouse movement and button will send the coordinate to move the viewports. But so far, I've got only linker errors.

Once I'll be able to make it work, I'll send the classes on the forum, that class is using a grid scenenode (from the forum) and support multiple views swithching (top, right, front, perspective) and also quad viewport. Its a rewrite of my previous code that had some functions everywhere. I'm trying to put all related function in the same thing now and write it in a proper coding style.
pera
Posts: 460
Joined: Wed May 14, 2008 1:05 pm
Location: Novi Sad, Serbia
Contact:

Post by pera »

Im planning to create entire games in editor. Scene fill follow original irr format, and additional data will be stored in additional files (more or less).

So there will be game binary which you start and it loads map and all and the game is ready to run (more or less).

I plan on implementing putting things on things (it could be as simple as adding object to collision triangle selector, more or less), and duplication (seeding) of objects on mouse click + shift or something like that (more).

Skyboxes, particles, water, terrain -> all good suggestions!

As for event passing to subclasses for handling - I like that stuff, it really puts the code where it belongs to. But I have problem with clicking on GUI and selecting 3d object on the map under the dialog. Its something you have to be careful about.
christianclavet
Posts: 1638
Joined: Mon Apr 30, 2007 3:24 am
Location: Montreal, CANADA
Contact:

Post by christianclavet »

Pera, if you plan to have the full game running inside the editor, I'm doing this (similar of the way the UNREAL engine is doing for launching their editor for their games). I'm checking is a parameter is added to the file when launched. (Could do easily an icon to create the parameter).
So one icon for the game, one icon for the editor and the same executable. (The start of the game engine is not there since I'm working exclusively on the editor part)

This is based on your own MAIN.CPP (For debugging purpose the current code is putting a fake parameter, but when releasing it, I would only comment out or remove that line.

Code: Select all

/** 
 * \file Editor.cpp
 * \brief Irrlicht Simple game level editor. Main function creates editor class and runs the loop. 
 * Nothing more.
 * 
 * \Some work based on Petar Bajic, MPE 
 * 
 */

#include "Editor.h"
using namespace irr;

#pragma comment(lib, "Irrlicht.lib")

//! Disable the console for Windows
//#ifdef _MSC_VER 
//#pragma comment(linker,"/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup") 
//#endif // _MSC_VER 


//! Main game loop.
int main(int argc, char * argv[])
{
	//! for debugging purpose, put a fake command line parameter
	argc=2; argv[1]="editor";
	printf ("command line parameters: %i\n",argc-1);
	if (argc>1) printf("Parameter input is: %s\n\n",argv[1]);
    if ((argc>1) | (argv[1]=="editor")) //! check if "editor" was entered as a parameter
	{ 
	  printf("Editor asked to load!\n"); 
      CEditor editor;
      editor.run(); //! launch the editor
	}
}
    
If it's not editor, then you would run for example the game loop (with it own GUI as "NEW GAME, SAVE GAME, OPTIONS, ETC." like

Code: Select all

game.run();
pera
Posts: 460
Joined: Wed May 14, 2008 1:05 pm
Location: Novi Sad, Serbia
Contact:

Post by pera »

I've finished version 0.3 and uploaded code and binary zip (check first post).
There are now two game examples and tutorials for using level editor. Several bugs were fixed and camera movement should now be FPS independent!

Thank you Christian for your suggestion, but Im looking to make separate game executables, so that one could distribute his games without level editor included (check how I did it with tutorials, and tell me how what you think).
dlangdev
Posts: 1324
Joined: Tue Aug 07, 2007 7:28 pm
Location: Beaverton OR
Contact:

Post by dlangdev »

pera wrote:I wasn't planning on adding such thing, it doesn't sound like priority right now.

But let me see if I understood correctly, Model file contains multiple textures references, so when you load model in the editor, list of available materials (textures) should be shown. User then picks the texture he wants to be used, or adds another texture to the group. Also, he can change attributes like diffuse, ambient, emisive, and such. Is that correct?

Can you write the list of attributes you want changed, and full description (specification) of wanted functionality? (Is it something like you see in IrrEdit?)
Yes, it is something like that, actually Irredit works like that except material types are limited. I'm looking for material types that can be extended, maybe add more material renderers in there or simply provide a way of adding a custom-made shader program to a material type.

I started writing a demo program for that see image below. I'd like to share this with anyone working on an editor as I think there are going to be some overlaps in our work.

The program is MFC specific, no other GUI libs are added here. Just plain vanilla GUI provided by MFC like CDialogBar, CToolBar, Etc.

Image
Image
pera
Posts: 460
Joined: Wed May 14, 2008 1:05 pm
Location: Novi Sad, Serbia
Contact:

Post by pera »

Id gladly implement it in my editor.
I don't know nothing about material renderers and shader programs, so if you help me a little i could add it. How much time do you need to complete it? Can I help?
dlangdev
Posts: 1324
Joined: Tue Aug 07, 2007 7:28 pm
Location: Beaverton OR
Contact:

Post by dlangdev »

pera wrote:Id gladly implement it in my editor.
I don't know nothing about material renderers and shader programs, so if you help me a little i could add it. How much time do you need to complete it? Can I help?
I have no deadline on this one, I just do it for fun.

Also, I have made several mockups and here is just one of them. Maybe you can tell if you can easily figure it out without even asking what it is. Because that's my goal, the form should be obvious to the user, it should communicate with a clear message.

Let's do some design mock-ups first and see what parts of the code will overlap.

Image

By the way, we can take this conversation private, I don't want to waste resource by posting in this thread, but if it is OK with you I can post public in any thread you want to setup.
Image
pera
Posts: 460
Joined: Wed May 14, 2008 1:05 pm
Location: Novi Sad, Serbia
Contact:

Post by pera »

pera
Posts: 460
Joined: Wed May 14, 2008 1:05 pm
Location: Novi Sad, Serbia
Contact:

Post by pera »

Hello everyone, I updated my level editor to new version 0.4!

This is binary app ready to run:
http://www.mystic-peanut.com/files/le_bin_v0.4.zip

This is source code:
http://www.mystic-peanut.com/files/le_source_v0.4.zip

This version features unique scripting system designed to bring ease to defining object purpose in the game.

I didn't use any existing scripting language, like lua or gamemonkey, but created my own xml script, that is parsed with irrlicht xml parser. Basically, I defined limited list of actions that object can do. And there are list of events WHEN those ation can happen. So 'scripting' is brought down to
- select mushroom
- pick "OnConsume" event
- add action: "Poison Player"
I hope this can be easily understood.

There are two new tutorials teaching how to write scripts for pickable game items and trigger objects. I would appreciate if anyone reads those tutorials to give me feedback on the subject, tell me if it was explained well, and how easy do they find those action adding.

If you just want to see what kind of game can be built with this version, check out this game example created in 15 minutes (more or less :)) :
http://www.mystic-peanut.com/files/gameexample3.zip
wuallen
Posts: 67
Joined: Thu Jan 25, 2007 3:07 am
Location: Shanghai

Post by wuallen »

awesome project. I want to try this project, I have looked through the tutorials. I think it does not support hight map, does it?
Post Reply