making a level editor

Started by
27 comments, last by SunDog 17 years, 1 month ago
Hello all, I've been attempting at making games for the last 2 years, but none of them have ever really worked out. I finally figured out that making a game would be so much easier if i had a level editor. i was thinking of a level editor where i have my own custom file to work with, and a drag and drop system. when i say that i mean i just have to click on what type of enemy or object i want and drag it to wherever, and can pick up to MAX_ENEMIES. i'll probably need to study up on pointers for this, but can anyone tell me how to get started with this, how to get it done, and any suggestions? Thanks a bunch, -Nathan
Advertisement
C#.NET or VB.NET are good for level editors. Programming an editor won't solve your problems though. Programming the game usually tells you what the editor needs to be able to accomplish. I guess I'm confused as to why having custom files would help you so much?

I only suggest using .NET for it's GUI and speed of development, so if you have your own GUI, by all means you can use that.
this really depends a lot on what kind of game it is
how the maps work
tilebased rpg and quake are pretty different..



as for the drag and drop thing and other gui stuff... honestly I never did anything that polished for my own map editor; mostly just keyboard inputs and a very simple (self implemented) drag/drop

if you want it to be pretty im sure someone else will suggest a nice library of stuff for that...
it would be for an acrade style top down shooter (2D). well i would probably mostly want it simple, and im guessing drag and drop isnt simple, so maybe ill go for just the keyboard input, that sounds much easier.
but for my programming i'm using C++ and OpenGL, in the IDE MSVC++.NET, but never have learned .net...is this still makeable in c++, or will it be a lot harder without using C# or .NET?

Thanks,
-Nathan
2 years is a long amount of time for almost anything unless you are making a new fighter jet or atomic bomb. You need to work harder son.
haha i know. well im in a bunch of honors and AP classes, and trying to get those grades up. highschool is a bitch. so all this programming is mostly on the side, and not a fulltime thing, maybe an hour or two on the weekends. not to mention part of those 2 years was learning all the stuff.

but anyways, does anyone have any comments, suggestions, or answers?

Thanks :)

[Edited by - BFMVfavorite on March 7, 2007 11:15:42 PM]
Um, ya it's actually kinda a Chicken and an Egg problem I found as well when designing my 3D engine. I ended up going with a pre-existing format for several reasons.

The biggest 1 was, it was a 3D engine, and the tools for generating 3D levels for this format were awesome and I knew them well.

And 2, developing an engine is a huge under taking. There will be a long time when you don't have too much to show that will impress anyone but your self. So developing your own data format as well as tools for it extends that massively creating a time table that will probably kill your project because, lets face it, we all want something to show from our time. And it will just take you forever to produce a product on that time table.

Especially if your just learning programming.

If I can bestow one piece of advice on you it would be this:
It's ok to stand on the shoulders of others.

I always wanted to do everything from the ground up. Not use other peoples stuff. Even thought it necessary to write my own String class. But when you get down to it. I don't care how "low level" you think your getting. You are still standing on thousands of others shoulders. Just accept that fact, and find the shoulders you need to stand on to make something fun. Of course learn something from every project, but don't reinvent the wheel every time.

I'm sorry, I guess that didn't answer your question. But to be blunt, if you need to *start* learning about pointers. You probably need to rethink the scope of your project. Start small, then slim it down 10 times. That will be a good starter project. Check this out, it was the first game I ever made. Yes cheesy, and lame, but got me started.
==============================
A Developers Blog | Dark Rock Studios - My Site
thanks for all that advice. first thing i wanted to address is, sorry if i made it sound like i was still learning how to program. i've learned C++ and OpenGL pretty well (and i know how to use pointers). i mentioned that part of the 2 years i've been programming, a year of it was learning them. so i know how to program fairly well.
next, yes i know its a pain to start everything from scratch, and would make much more sense to use another library or in my case level editor already made, but i think it would be a great learning experience if i made my own, not to mention i would enjoy making it, even though it would probably be problem after problem.

in the end, once i've at least attempted at making my own, i don't think i'm gonna use someone else's engine or level editor. so i'm guessing if you want to sum it up quickly, this is how you would do it? keyboard input, write all the positions of the different objects you've place in the file, and then load the file you wrote with your level editor into your game, and display the objects that way? a very vague summary, but is that the gist of it?
Are you talking about a generic editor for creating arbitrary 3D meshes? And being able to do stuff like texture paint and UV map? Or are you talking about something where you just take maybe a level mesh and place in different object meshes and generic scripts and triggers, etc.? Because if you are talking about the former, you are in for doozy. Experienced programmers who are paid full time have a hard time pulling that off in a reasonable time frame. My suggestion would be to modify the Q3 engine - its OSS now, and modify its level editor radiant to serve your purpose.

http://ioquake3.org/
http://www.qeradiant.com/

Edit: i see you are dealing with 2D top-down shooter. Are you talking something like the old classic 1942? Well thats not too bad. And no, drag and drop isn't that hard, if you know what you are doing and the API isn't too hard to learn. On that note, MFC is pretty daunting for people who hare just started programming. You need to learn more about the event handling mechanism in MSVC. You can design your form directly in MSVC, and then add callbacks to handle mouse events. The code for declaring MFC message handlers looks pretty ugly. It uses paramterized macros. Fortunately you can mostly ignore it (sometimes you do have to deal with it, but for simple stuff you shouldn't)

What I envision is that you have a bunch of objects with x,y positions per level, I'd assume constrained to some constant width? So you would have maybe an object panel and then a canvas which you scroll up and down select the object, then click the mouse to add to a position on the map.
Quote:What I envision is that you have a bunch of objects with x,y positions per level, I'd assume constrained to some constant width? So you would have maybe an object panel and then a canvas which you scroll up and down select the object, then click the mouse to add to a position on the map.


that's exactly what i had in mind. it would be simple enough to just write it to a file that has the same format as a .txt (althought i'd probably name it something more like .map), and then i would just have to parse it into my game. i've already started it, and haven't had any complications besides getting string input....i can only input one at a time, so it's impossible to write a word unless it has one letter in it, or put in a number that has 2 or more digits. how do you get started with that kind of stuff? i'm just using Win32 for window creation.

This topic is closed to new replies.

Advertisement