joshcamas Posted September 27, 2014 Share Posted September 27, 2014 Most Stable Version: 0.013aRecent Version (Test): ---- Hello guys! I keep asking questions about this project, so I decided to just make a central thread for this. SamacEditor is the beginnings of a Terrain Editor for my projects. I hope to make it as open-ended as possible, to eventually allow other people to use this editor for their own projects.The design of the editor is to remain as separate from game-code as possible. This is to allow you to make your game any way you want, and still use all the features. Working Features:Edit Terrain in a variety of (buggy) ways!Save Terrain by Importing/ExportingExports terrain in chunks to allow optimising in gamePaint Terrain with texturesUpcoming Features:Vertex Editor: Fix your terrain one vertex at a timeObject List: Add and Edit objects to add into your worldWorld Editor: Add/Interact with your objects!Texture Paint Shapes: Choose from a variety of masks to edit your textures inNerd Talk:This is done by having the editor create .json files contain information, including object location, terrain vertices, and much more. You'll soon be able to create objects, which while has a mesh in the terrain editor, it doesn't export a mesh for it. Instead, it exports a .json file containing the ID, scale, position, rotation, and custom variables. Your game-code can then interpret this json file as you wish, or use my engine I'll be trying to release someday in the next century. Another important note: This editor uses php. Therefor you must use a more complex local server program, such as WAMP. Well, thanks for reading! If you have any ideas or problems, post it here! Old Post: SamacEditor is the VERY Beginnings of a Terrain Editor for Babylon, built in Babylon. So far I haven't achieved much, but what I have is located here: http://steinhauer.x10.mx/editor Soon I'll be adding a json-importer/exporter. The world chunks then would be loaded with it's own format! Eventually I wish to add a full-blown editor - add rocks, houses, any mesh. That will be in the future. --------------------------------------------------------------------------------------------------------------------------------------------------------------------I do have a question on how I should design this guy. Where should it be located? -Local: The editor is downloaded to the location of your game. From there you access all files and objects Pros: *The editor needs no downloading/uploading to server. So if the editor exports a million images, it'll all work out fine *Streamlined - files automatically get updated, no need to download Cons: *Requires a local server -Server: The editor is located on the internet, and requires drag-and-drop of objects and images Pros: *Online, so accessible anywhere *No local server required Cons: *Requires a massive amount of downloading and uploading of files, all the time While I don't think Local is the coolest way, (No demos! ) I think I'll be forced to do it - you can't make a game where every time you edit textures they have to be downloaded to the correct place! Blehhh! Another problem: I'm currently using a edited version of the python local simple server. However this little guy does not support POST and PHP! Does anyone have a lightweight program in python (or not) that supports these things!? Thanks! Quote Link to comment Share on other sites More sharing options...
Dad72 Posted September 27, 2014 Share Posted September 27, 2014 Good luck with your project. it took me almost 2 years to complete CastorEngine that has a full terrain editor, particle editor, script for the game and others.With my editor, you can add 3D models by drag drop, add components to edit each objects on the scene (collision, rendu, action...)CastorEngine also to its own file format for the ground and the content of the scene. I think you are creating an editor that already exists and in multilingual. Quote Link to comment Share on other sites More sharing options...
joshcamas Posted September 27, 2014 Author Share Posted September 27, 2014 I've seen that, yes. It looks very good! However, I personally love to build my own stuff, and in my own way. GameMonetize 1 Quote Link to comment Share on other sites More sharing options...
AlexB Posted September 27, 2014 Share Posted September 27, 2014 Josh, if you have PHP installed, running a server is a simple as:php -S localhost:8000 Quote Link to comment Share on other sites More sharing options...
Dad72 Posted September 27, 2014 Share Posted September 27, 2014 You can use EasyPHP or WAMP as a local server. End users choose to install locally or on a hosting server. Quote Link to comment Share on other sites More sharing options...
joshcamas Posted September 30, 2014 Author Share Posted September 30, 2014 Woo! Here's a massive update! http://steinhauer.x10.mx/editor/versions/1/ This little guy has a basic texturing system, (click "Texture painter" to begin), and of course a better terrain editor. I'm also trying to make a vertex editor, which makes it so you can manually fix each vertex in each plane. This feature doesn't work at all... I'm also going to try to make image masks for the painter, but that will come later. Most of the controls work now, as well. Quote Link to comment Share on other sites More sharing options...
Dad72 Posted September 30, 2014 Share Posted September 30, 2014 Congratulations to paint part ground I failed this part to my editor. Quote Link to comment Share on other sites More sharing options...
joshcamas Posted October 4, 2014 Author Share Posted October 4, 2014 thanks! A huge update is coming soon! I've updated the interface, and the best part is... json saving/loading works! I'm not sure how I should use saving json on the demo (security and such)... but loading will be a thing on demo! I just need to add image saving/loading (quite easy!) and set up some stuff, and I'll upload the demo. EDIT: Image saving is finished! It's so pretty! GameMonetize 1 Quote Link to comment Share on other sites More sharing options...
joshcamas Posted October 5, 2014 Author Share Posted October 5, 2014 Update! http://steinhauer.x10.mx/editor/versions/3/ I've updated the interface (not quite finished), and added a huge feature: The importing/exporting of maps! How it works:First a json file is saved to the map folder. This first file is the map file. It contains general map data. (map width + height, textureResolution, etc)A map consists of chunks. Each chunk also gets its own json file.Each chunk gets its own image. These are saved as well. When you want to import it, it simply loads the data. Soon I'll be adding intelligent loading, so you need to only load chunks that your standing on. This would allow for big maps. The exporter is a php file. Right now the demo only imports, because I dont want to have php that can delete anything it wants to. I'll add security at some point.Soon I'll make it so you can download a .zip file containing your "export". PS: Importing takes a bit! So be warned! Post any bugs and ideas! EDIT: There is something very strange. In chrome this works fine and dandy. In firefox, however, picking meshes is VERY broken! There is a strange shift or offset, always (1/3) of the size of the canvas to the right. Anyone seen this before? GameMonetize 1 Quote Link to comment Share on other sites More sharing options...
GameMonetize Posted October 6, 2014 Share Posted October 6, 2014 Could you try to reproduce the picking bug in a playground sample? Quote Link to comment Share on other sites More sharing options...
joshcamas Posted October 10, 2014 Author Share Posted October 10, 2014 I'll try... You know what would be awesome? Ima be adding a object adder first, and then eventually add a vertex editor/mesh creator. This would allow for the above. I'm hoping to make it SUPER easy to add custom code to do basically anything you want. I'm leaning toward making a game with the style of delver, (I can't do complex meshes) and I would want to make samac do that and my original game style as well. Quote Link to comment Share on other sites More sharing options...
GameMonetize Posted October 10, 2014 Share Posted October 10, 2014 Waoou tha'ts look just awesome!!! Quote Link to comment Share on other sites More sharing options...
joshcamas Posted October 13, 2014 Author Share Posted October 13, 2014 Update: 0.01 Well an update has arrived! Added HUGE Feature: GUI GeneratorLoads GUI data from a javascript file hereAutomates a LOT of code - Instead of several hundred lines of hard code, the GUI data does it all by itself.Allows certain selections to hide mini panels (Example: Flatten Brush Type hides Direction minipanel)Generates all of the panelling you see on the editor.Generates modals (popups)Did a lot of work on the loading systemDid a lot of work on SamacEngine to work with my game and this EditorBegan work on Object Editor (Not visible atm)Did a bit more work on Vertex EditorAdded Flatten, Smooth, and Noise Terrain TypesAdded the ability to switch texture in Texture EditorAdded auto-pixel scaling to texture if wantedAdded Several texturesBe sure to point out any problems or bugs you have! Thanks for reading! Editor:http://steinhauer.x10.mx/editor/versions/0.01 Version Log:http://steinhauer.x10.mx/editor/versions/0.01/versions.html GameMonetize 1 Quote Link to comment Share on other sites More sharing options...
Samuel Girardin Posted October 13, 2014 Share Posted October 13, 2014 Great job ! Quote Link to comment Share on other sites More sharing options...
demonixis Posted October 13, 2014 Share Posted October 13, 2014 Well you've done a excellent work ! Can't wait for a JSON export Quote Link to comment Share on other sites More sharing options...
joshcamas Posted October 16, 2014 Author Share Posted October 16, 2014 Update: 0.012 A Mini Update is here!Changed hosting to a real site I have, instead of the crap free hosting. Now you can export/import as much as you want!Modals are generated now as well. Thats how the import/export modals have come to be.Lots of bugses fixeded.For the next major update I plan on building something like Babylon Editor, to make it so you can add meshes and stuff. Then these object's locations would be saved to the exporter. The importer then can do anything it wants to. I'm also going to add a editor.json, which is included in every map. This editor file contains important datas for the editor itself, not whatever the game your exporting for. The mesh locations and such would be paired with this file. Be sure to point out any problems or bugs you have! Thanks for reading! Editor:http://skriptforums.com/editor/0.012/ Quote Link to comment Share on other sites More sharing options...
joshcamas Posted October 17, 2014 Author Share Posted October 17, 2014 I'm having a problem:I've been trying to set up the object-movey thing. (Translate thingy)I've been looking at the drag-n-drop example on the playground, and made it so you can only go in one direction. (This will allow different arrows to go different directions)http://www.babylonjs.com/playground/#1BFYHY This is all fine and dandy... except one strange factor. The ground.I'm slightly confused on how the returning ground location works... Anyone wanna explain? EDIT: OHHH It seems the ground is being used as finding a point in the world, making the ground a kinda global pointy-thingy! Couldn't there be a better way of doing this??? I mean, something like this: Run a function that has inputs: Mouse x, Mouse y, global x, global y, and it returns a global z. :S Quote Link to comment Share on other sites More sharing options...
Xeonzinc Posted October 17, 2014 Share Posted October 17, 2014 This is what I use:var pickInfo = scene.pick(currPos.x, currPos.y);if (pickInfo.hit) { if(pickInfo.pickedMesh.id == "worldTile") { mgrid_pos.x = pickInfo.pickedPoint.x; mgrid_pos.y = pickInfo.pickedPoint.y; mgrid_pos.z = pickInfo.pickedPoint.z; }}Where currPos x/y are from the mouse event listener ( currPos.x = evt.clientX; currPos.y = evt.clientY;). This version is limited to only returning values when the cursor is above 'worldTile', but if you remove this if statement it will work for all meshes in your scene which have 'pickable' set to true. I'm not sure if this helps you - it inputs mouse x/y and returns global x/y/z. I can't quite get my head round how inputting mouse x/y & global x/y would work together? Quote Link to comment Share on other sites More sharing options...
joshcamas Posted October 17, 2014 Author Share Posted October 17, 2014 What I am needing is something quite different, I'm afraid. I need to do what the Babylon Editor uses, but cannot get my head wrapped around it. Every frame you're dragging around a mesh, it needs to compute where the mesh will be now. Problem is that the mouse location is not touching anything, so you cant pick. You do however, have the old location of mouse, and it's 3D counterpart. What I need to do is convert a 2D Vector (old -> new) to a 3D Vector (old -> new). I know the entire 2D Vector, but I only know the starting point for the 3D one. EDIT: After scouring the Babylon Editor's Code, I think I get it! It's working! Very buggy just due to how buggy the Original Editors is, but I'm working on that...One problem seems to be sensitivity... if your zoomed in at *just* the right spot, everything is dandy. But if your zoomed in/out too much, the object moves too much or too little. So now I'm working on getting it to interact with camera distance. I've managed to make one improvement: in the Original Editor the manipulator automatically "scaled" to fit the screen's shape. Strangely enough, the coder didn't scale the manipulator... he/she changed the position. This causes a problem not visible in the OG editor due to not being able to see the manipulator while the camera moves. But thats fixed for me nows... I'm dumb. Nevar mind, I get why the coder did it! Scaling an object changes it's positioning crap, yes? And scaling would indeed break it There must be a way to fix!!!!!!!!! Quote Link to comment Share on other sites More sharing options...
joshcamas Posted October 18, 2014 Author Share Posted October 18, 2014 Okay so I made a sweet logo for the project, a favicon, and also added a Credits button:http://skriptforums.com/editor/0.012t/ On that test version above, you can click the "World Editor" Button. Out pops a lovely object, with its own manipulator. But then try zooming in the camera!As you can see, everything bugs out! Does anyone know how this could be fixed? EDIT: I also have another question - is it possible to change the name of this thread? I cant find a button anywheres! Quote Link to comment Share on other sites More sharing options...
demonixis Posted October 19, 2014 Share Posted October 19, 2014 Hi ! You made some good progresses since 0.0.1 release ! However I tried to export my map and after a long time nothing happened. Yann. Quote Link to comment Share on other sites More sharing options...
joshcamas Posted October 19, 2014 Author Share Posted October 19, 2014 What was the name of the map?What browser?And what version did you use? 0.012 or 0.012t? And be sure to test it on... Mini Update: 0.013Added more security for exportingNew logo + favicon, and a credits button. <3Updated GUI system to allow for a soon-to-come updateExporting shows with file is being exportedThis update was mostly for demonixis to test exporting. EDIT: I needed to fix a big bug, so here is: Mini Update: 0.013aFixed a major bug in exportingAdded a back button to specific errors and the credits Quote Link to comment Share on other sites More sharing options...
Dad72 Posted October 20, 2014 Share Posted October 20, 2014 Same thing with me, after the import I have nothing. Map: defaultbrowser: latest version of google chromeversion: 0.013a Quote Link to comment Share on other sites More sharing options...
joshcamas Posted October 20, 2014 Author Share Posted October 20, 2014 ok so for whatever reason the hosting I'm using doesn't like my php. So... Mini Update: 0.014Switched back to old host, So exporting works.Added masks: Select your mask to change the "shape" of your texture brush!Added color: Choose to paint in a color instead of a textureNext Update I'll make it so the texture/masks dropdown will contain a picture each. Quote Link to comment Share on other sites More sharing options...
joshcamas Posted October 27, 2014 Author Share Posted October 27, 2014 Hey guys! I've run into a problem - not a technical problem per se, but a design problem. I'm wanting my editor to be as open ended as possible - when editing a game one doesn't simply drag and drop meshes to be rendered, sometimes one may want these meshes to symbolize something, like a spawnpoint and such. And then maybe one wants to have a house, built from several meshes. (walls, etc) In other words, there are several "thingies" you can add to the map, and they all work differently:Meshes attached directly to the map. These would often be rocks and trees, and would simply be seen as meshes, maybe some collide and some don't, etc.Symbols - these are seen as meshes in the map editor, but not in the game. Thus the mesh location would not be exported, only ID's and rotations and such.Groups of meshes - parent meshes together, and you now have a fancy house or lightpost. Now why wouldn't you simply make a "house mesh"? Because that's a waste of meshes, and meshes = loading, and no one likes loading. These groups can be considered a "mesh" in the aspect of thingy 1 and 2 above.So basically... does this make any sense? Should I change the names of anything, or redesign anything? Any ideas? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.