Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411488 Posts in 69377 Topics- by 58433 Members - Latest Member: Bohdan_Zoshchenko

April 29, 2024, 03:25:45 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperTechnical (Moderator: ThemsAllTook)What custom editors have you written or needed, and why?
Pages: [1]
Print
Author Topic: What custom editors have you written or needed, and why?  (Read 2651 times)
SHilbert
Level 0
**



View Profile WWW
« on: January 25, 2010, 01:32:26 PM »

Games require a lot of data. Inevitably, a lot of that data turns out to be fairly game-specific: custom map formats are pretty common, for example. A lot of that custom data is extremely inefficient to edit in text files, and closing and re-loading your game to load new versions can be an annoying delay.

There are a lot of game engines or game creation tools out there that have their own comprehensive WYSIWYG editor to deal with this problem. And, of course, there are always those that will want to write everything from scratch themselves regardless. But what I'm interested in is this:

  • What types of game data have required you to write your own editor, or made you want an editor but you didn't have the time or interest to do it yourself?
  • Why couldn't you use an existing editor?

The reason I ask this is that I am interested in writing free software to help people make games more smoothly. I don't want to write an end-all be-all game engine and editor solution, and I don't want to naively try to create a silver bullet solution to everyone's editing needs, but I would like to know what types of editing dilemmas people are having, and see if I can identify some common areas that could use a flexible tool.

This is an example of the kind of thing I'm thinking of: A lot of 2D games need a map editor, whether it's for editing tile maps, setting up polygonal level geometry, placing entities and configuring their properties, etc. So, you could make a somewhat generic editor that lets users define some kind of a schema (what entities can be placed, what properties they have, how to draw them in the editor) and then edit maps using that information. It would save to a straightforward text or XML format that you could load easily in a game. Users could benefit from features like undo that would be less likely to be implemented in custom tools.

But, that's just my own view. What do you guys think? What kinds of things do you need, and is there any hope of satisfying some of those needs with generic tools?

(DISCLAIMER: No one piece of software can work for everyone's individual situation. The idea here is to figure out if there is something that could serve a lot of people in a satisfactory way.)
Logged

bateleur
Level 10
*****



View Profile
« Reply #1 on: January 25, 2010, 01:40:03 PM »

I've never used a 3rd party editor for anything since the advantages of being able to edit data during play are too great to pass up.

That said, I've yet to work on a true 3D game. Writing a gridless 3D environment editor might be a bit too much work.
Logged

SHilbert
Level 0
**



View Profile WWW
« Reply #2 on: January 25, 2010, 01:57:40 PM »

I've never used a 3rd party editor for anything since the advantages of being able to edit data during play are too great to pass up.
Do you have a particular setup for this that works well? I'm also interested in successful patterns for runtime editing. It's difficult to "help" as a 3rd party in that kind of situation, unfortunately, due to the kinds of constraints it would place on peoples' code.

That said, I've yet to work on a true 3D game. Writing a gridless 3D environment editor might be a bit too much work.
I agree, that would be quite a bit of work. I worry that it is even more difficult to make that type of thing sufficiently generic, without having it turn into yet another 3D modeler -- especially due to how unstandardized 3D games are in practice (with respect to models, materials, even which axis is up.) Also, the type of people that are making 3D games without using an existing engine or co-opting Blender or Max or Maya for this purpose are probably the kind of people that like writing their own tools.
Logged

st33d
Guest
« Reply #3 on: January 25, 2010, 02:12:29 PM »

We use a javascript hack to save xml files for Flash games from Firefox at work:

http://www.galasoft.ch/myjavascript/CExplorer/index.html

We could write an AIR app for a level editor, but the level editor evolves throughout the development process, and we need to hack our editor code apart for each new project. It's just faster this way.
Logged
Ivan
Owl Country
Level 10
*


alright, let's see what we can see


View Profile
« Reply #4 on: January 25, 2010, 02:21:28 PM »

I originally wrote a scene exporter from Blender for my engine, but now am working on my own scene editor to have better integration with engine-specific stuff.
Logged

http://polycode.org/ - Free, cross-platform, open-source engine.
David Pittman
Level 2
**


MAEK GAEM


View Profile WWW
« Reply #5 on: January 25, 2010, 03:29:33 PM »

I considered writing a custom world editor but ended up being able to do almost everything I need with Blender (by using the arbitrary key-value properties as object metadata).

I've written a lot of intermediate tools: a mesh exporter and world exporter for Blender, both of which emit XML files; mesh and world compilers to convert those XML files into a more compact, engine-ready binary format; a global illumination solver to run as a post step on the binary world; a configuration compiler to build binary files from INI-like text config files. But those are all command-line tools, so they have no UIs. (They're also all hooked into my automated bake script so I don't have to remember the command-line formats or ever type them by hand.)

I wrote all those tools myself because they are specific to my engine. It's not something that could easily be generalized--I typically modify the exporter, compiler, and engine in tandem when I need to introduce new features. That said, most people have generally similar needs for things like meshes, and the only aspects that are likely to change are things like the ordering of the data or the size of indices. So a general-purpose tool would just need to be configurable to support each user's slightly different needs for the same common functionality. For example, I could replace my mesh pipeline with a tool that exports from a Blender scene into my custom binary format according to a definition file. Or better yet, it could be a tool that compiles an established standard like COLLADA into a defined binary form. That way, an artist could use any modeling tool that already has a COLLADA exporter, then run this tool and get a game-ready asset out of it.
Logged

iamwhosiam
Level 0
***


View Profile WWW
« Reply #6 on: January 25, 2010, 04:57:42 PM »

I wrote an animation tool similar to this, http://processing.org/learning/topics/animator.html. a little more full featured though. lol. and with a save button.

It's real nice for making quick particle effects.
Logged
John Nesky
Level 10
*****


aka shaktool


View Profile WWW
« Reply #7 on: January 25, 2010, 05:12:32 PM »

I made a 2D bone-based animation editor for a

:



Because I wasn't aware of any publicly available alternatives that had 2D bone trees made out of bitmap sprites for use with OpenGL, and also had integrated hitbox control. I'm still not aware of an alternative.
Logged
gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #8 on: January 25, 2010, 06:23:57 PM »

Oh! that's look good, i like the style!
Logged

Matt Thorson
Level 7
**

c'est la vie


View Profile WWW
« Reply #9 on: January 25, 2010, 06:51:10 PM »

I just finished an early version of a 2D level editor for myself.  It supports tilemaps as well as game objects and exports to XML (and can import the XML back in to edit the levels).

I tried to make it as project-independent as possible. It reads in a project XML file on startup which defines all the objects/tilemaps/layers and other settings. The idea being that when I start a new game project I just have to write up a new project XML file for it rather than a whole new editor.

It's still just between me and a couple close friends for now, mostly because it's still buggy and needs a lot more features to be useful to more people, but I might one day release it to the public.
Logged

zantifon
Level 0
**


View Profile WWW
« Reply #10 on: January 25, 2010, 07:15:20 PM »

I made a 2D bone-based animation editor for a

:
Man, I had a lot of fun using that editor. Good times.
Logged
mcc
Level 10
*****


glitch


View Profile WWW
« Reply #11 on: January 25, 2010, 09:35:03 PM »

The one game I've completed, I went way out of my way to use existing formats. The game is loaded out of an XML file and all the level "maps" are PNG files. This was a real bonus because it meant I could sort of "bootstrap", I got to make the first batch of levels in publicly available editors*. What I quickly found though was that I needed something like an in-game editor because I needed to be able to create parts of levels and then immediately see how what I'd done looked and behaved within the game engine. No external editor could entirely provide me that. I also a little bit found myself questioning the PNG decision because it is a bit of a rigid format, it meant I could never place objects except on a grid.

The first thing that I'd be looking for in a "generic" level editor program would be the ability, somehow, to tie the level editor program in to my code, so that for example I could have a "preview" window showing how my game engine interprets the things I'm drawing in the entity editor in realtime. (One trick I've seen described in other threads here is having your game continuously reload your data files, which I guess would remove the need for actual engine integration since you could just run the external editor in one window, the game in another, and still be able to watch your changes flow over to the game in realtime. Though I'm not sure whether or not this would accomplish that full engine integration would give you. Something I was constantly doing while writing Jumpman was controlling Jumpman with one hand while redrawing the level with the other.)

The one thing I personally would really, REALLY be looking for in an external editor-- that is, the one thing I don't really feel like I could easily set up on my own just by adapting code I've already got-- is the ability to create or script animations of whatever sort wherein in-engine entities are being commanded. Super bonus points if this would mean I could give the editor to an artist or something.

* I at first used, and loved, "pixen" but I have just had incredible problems with it lately. It crashes so much and, bizarrely, at some point it started actually every time I save a PNG file altering all the colors subtly (?!) which makes it basically useless for game work.
« Last Edit: January 25, 2010, 09:39:12 PM by mcc » Logged

My projects:<br />Games: Jumpman Retro-futuristic platforming iJumpman iPhone version Drumcircle PC+smartphone music toy<br />More: RUN HELLO
bateleur
Level 10
*****



View Profile
« Reply #12 on: January 25, 2010, 11:54:15 PM »

Do you have a particular setup for this that works well? I'm also interested in successful patterns for runtime editing.

Typically what I do is add a bit of space at the top of the game screen, stick a menu there, then make as much of the editing as possible mouse driven. One of the menus is usually a "mode" menu which controls what the mouse will do when clicked or dragged within the play area.
Logged

Riley Adams
Level 5
*****


I don't actually use Ubuntu much...


View Profile
« Reply #13 on: January 26, 2010, 01:03:48 AM »

Quote from: Ivan
I originally wrote a scene exporter from Blender for my engine, but now am working on my own scene editor to have better integration with engine-specific stuff.
^Same here.

I was rushing to get stuff put together before the IGF deadline, so I hacked up a quick export script, and used blender as my editor; but now that I have time to refine things, a more proper editor is going to be a lot more convenient (lets me see exactly how things will look ingame rather than guessing based off of blender renders... also it means better integration with the engine features, and being able to make changes and 'jump in' to test, rather than going through a bunch of export steps and going between blender and the game itself constantly).
Logged

deadeye
First Manbaby Home
Level 10
*



View Profile
« Reply #14 on: January 26, 2010, 03:24:58 PM »

I made a simple level editor for an unfinished game that saved in .ini format.  I didn't use any preexisting map editor because I needed to have certain variables and whatnot tied to particular objects along with their coordinates and layering info, and no free 2d map editor I know of had the kind of features I needed.

And way back in the day I made my own sprite animation editor using QB4.5 because I couldn't be arsed to figure out how to use actual .bmp or .gif files in BASIC.  Instead I made my own proprietary image format that was basically a text file with sprite height, width, and raw pixel color info Tongue.  I tweaked that to include frames, and snagged some mouse code off the internet to make a drawing program for that format.  It worked surprisingly well.
Logged

tweet tweet @j_younger
Tycho Brahe
Level 10
*****

λx.x


View Profile
« Reply #15 on: January 31, 2010, 06:06:12 AM »

for my last project I had a simple 2d polygon-based level design/structure, so instead of writing a whole level editor, I wrote a parser for svg files which would turn them into levels for my game. this way I could use a simple svg editor which supported labels (like inkscape) to create a full level, then run it through the program and come up with a full level. This was probably way slower than writing my own level editor, but it did the job and was quicker than writing them by hand.
Logged
ITS_Mike
Level 3
***


Programmer


View Profile WWW
« Reply #16 on: January 31, 2010, 09:36:23 AM »

I create all of my own tools (with the obvious exception of code editors, compilers, etc).  Using pre-made tools would only limit me, and it does not take long for me to create my own.  I have created map editors, NPC editors, item editors, spell editors, graphic editors, and more tools which are specific to the game that I am working on.
Logged

Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic