Jump to content

L B

Members
  • Posts

    967
  • Joined

  • Last visited

Posts posted by L B

  1. 3DWS integrated in the editor ? Where can i pre-order LE3 ? :)

     

    This would be an awesome thing !

     

    By the way Josh, are you thinking that you will be maybe able to provide some sort of beta of LE3 before christmas ?

    I see 3 part in your roadmap, like someone asked you before, are you planning to complete all of those 3 parts before releasing a beta version ?

    As these are 3 development phases, I assume it is only logical to develop the software before releasing it.

  2. I'm trying the following code. When I middle-click, it creates a warrior at pick position and assigns its "canSelect" key to "true". When I click, it checks the "canSelect" entity of the key to know if it is selectable. However, that key checking always returns the default value (a.k.a. empty string), as if the model didn't keep its keys through the raycast.

     

    Note: It's C#, but the syntax is very readable, so I assume you can all read it.

    using System;
    using System.Collections.Generic;
    using Aerora.Logic;
    using Leadwerks;
    
    namespace Aerora
    {
    static class Client
    {
    	public static bool Run = true;
    
    	private static Entity selected;
    	private static Entity Selected
    	{
    		get
    		{
    			return selected;
    		}
    		set
    		{
    			if (Selected != null)
    			{
    				Selected.Color = Color.White;
    			}
    
    			selected = value;
    			Selected.Color = Color.Red;
    		}
    	}
    
    	public static void Main(string[] args)
    	{
    		Engine.Initialize(DisplayMode.Window);
    		Framework.Initialize();
    		Filtering.Optimize();
    		FileSystem.Initialize(@"C:\Program Files\Aerora");
    
    		Framework.Effects.Bloom.Enabled = true;
    		Framework.Effects.VolumetricLighting.Enabled = true;
    		Framework.StatisticMode = StatisticMode.FrameRate;
    
    		Scene scene = new Scene("abstract::Dust Valley.sbx", Framework.Camera);
    		Explorer explorer = new Explorer(Framework.Camera);
    		Random r = new Random();
    
    		List<Model> warriors = new List<Model>();
    
    		while (Client.Run && !Window.HasRequestedClose)
    		{
    			explorer.Update();
    
    			Pick pick = new Pick(Framework.Camera, Mouse.X, Mouse.Y, 5000);
    
    			if (Mouse.ButtonHit(MouseButton.Middle))
    			{
    				Model warrior = new Model("abstract::warrior_character_skin.gmf")
    				{
    					Position = pick.Position,
    					ViewRange = ViewRange.Infinite,
    					Scale = 0.3f,
    					Rotation = new Vector3(0, r.Next(), 0)
    				};
    
    				warrior.Keys["canSelect"] = "true";
    				//pick.Entity.Keys["canSelect"] == "true"; // Returns true.
    
    				warriors.Add(warrior);
    			}
    			else if (Mouse.ButtonHit(MouseButton.Left))
    			{
    				if (pick.Entity.Keys["canSelect"] == "true") // Returns false.
    				{
    					Selected = pick.Entity;
    				}
    			}
    
    			foreach (Model warrior in warriors)
    			{
    				warrior.Animate(Timing.Time / 20);
    			}
    
    			Timing.Update();
    			Framework.Update();
    			Framework.Render();
    			Graphics.Flip();
    		}
    
    		Framework.Terminate();
    		Engine.Terminate();
    	}
    }
    }

  3. Here's the inner header code for initializing framework:

    Framework.Pointer = Core.CreateFramework();
    
    Framework.CheckPointerDll();
    
    Framework.StatisticMode = StatisticMode.None;
    
    //Global.Objects["fw"] = Framework.Pointer; I had this commented out, because it didn't make any change.
    
    IntPtr lua = Core.GetLuaState();
    Core.lua_pushobject(lua, Framework.Pointer);
    Core.lua_setglobal(lua, "fw");
    Core.lua_pop(lua, 1);

     

    Oh yeah, the global goes as follows:

    	public class GlobalPointers
    {
    	internal GlobalPointers() { }
    
    	public IntPtr this[string key]
    	{
    		get
    		{
    			return Core.GetGlobalObject(key);
    		}
    		set
    		{
    			Core.SetGlobalObject(key, value); //  There.
    		}
    	}
    }
    

  4. I'd like 4 view ports too. I don't see why it would be hard to code. Set the mouse/keyboard input to the viewport last focused (clicked). Have all other viewports just be a camera. When you get in a viewport, you can move the camera with the WASD as usual. :blink:

     

    But agreed, it's far from being *that* important. Probably more of a gizmo than anything else.

  5. I'm getting the following error in my log:

     

    Loading model "c:/program files/aerora/environment/waterplane/environment_waterplane.gmf"...
    Loading mesh "c:/program files/aerora/environment/waterplane/environment_waterplane.gmf"...
    Loading script "c:/program files/aerora/environment/waterplane/environment_waterplane.lua"...
    Creating class environment_waterplane
    Warning: Failed to save body "c:/program files/aerora/environment/waterplane/environment_waterplane.phy".
    Lua error: [string "c:/program files/aerora/environment/waterpl..."]:34: C:/Program Files/BlitzMax/mod/lugi.mod/core.mod/lgcore.cpp:891@lugi_index_object: Index for object is
    not a valid field or method.
    Lua error: [string "c:/program files/aerora/environment/waterpl..."]:34: C:/Program Files/BlitzMax/mod/lugi.mod/core.mod/lgcore.cpp:891@lugi_index_object: Index for object is
    not a valid field or method.
    Lua error: [string "c:/program files/aerora/environment/waterpl..."]:34: C:/Program Files/BlitzMax/mod/lugi.mod/core.mod/lgcore.cpp:891@lugi_index_object: Index for object is
    not a valid field or method.
    Loading model "c:/program files/aerora/environment/atmosphere/environment_atmosphere.gmf"...
    Loading mesh "c:/program files/aerora/environment/atmosphere/environment_atmosphere.gmf"...
    Loading script "c:/program files/aerora/environment/atmosphere/environment_atmosphere.lua"...
    Creating class environment_atmosphere
    Lua error: [string "c:/program files/aerora/environment/atmosph..."]:69: C:/Program Files/BlitzMax/mod/lugi.mod/core.mod/lgcore.cpp:891@lugi_index_object: Index for object is
    not a valid field or method.
    Lua error: [string "c:/program files/aerora/environment/atmosph..."]:69: C:/Program Files/BlitzMax/mod/lugi.mod/core.mod/lgcore.cpp:891@lugi_index_object: Index for object is
    not a valid field or method.

     

    Lua error: [string "c:/program files/aerora/environment/waterpl..."]:34: C:/Program Files/BlitzMax/mod/lugi.mod/core.mod/lgcore.cpp:891@lugi_index_object: Index for object is not a valid field or method.

     

    Any idea at all? I'm lost at the moment.

  6. It's always good to look at all sides, even if you don't change your mind. For the engine, there are clear benefits to using C++. I don't think this is the case for the editor.

     

     

    All converters are still just command-line utilities stored in the "Tools" folder. The editor calls the process and reads back the console output to tell when it's done. This means the converter code is separate, you can add your own converters, and if a converter crashes the whole editor won't crash.

    I'm currently writing a byte reader/writer for GMF, along with a C# editable mesh class. This should allow me to make plugins built into Middlewerks for any given file type.

  7. I didn't say that a front end gui wasn't useable... just mentioning the fact that this is all that the program is currently, when there was no hint of it being just a front end for the existing commandline tools. I would hope that Josh would have gotten some cut for any money made on this if you kept it as a sellable item, since its his tools actually making the conversions. I actually think a front end GUI is an extremely nice idea, but having to DL 40MB of .NET seems to be a bit much.

     

    Also, a simple cfg text file would suffice for saving the LE SDK path; there's no reason to write stuff to the registry if all you are saving is the SDK path.

    As I am providing an additional layer that is completely separate from Leadwerks, there is no reason for Josh to get a cut of the profits. Besides, I have communicated with him in order to make sure there was no licensing problem at all.

     

    Besides, 40MB of .NET will be a necessary update in the next 2 or 3 months. All major developers upgrade to the latest .NET when developing, and since .NET 4 brings significant every day advantages, I can foresee this happening in the near future.

     

    Did you have any problem by saving to the registry? Was there a restriction of any kind, a UAC prompt, a crash, or something? I have tested it in non administrator machines and it works without flaws, although I couldn't do any extensive testing yet. If you had a bug with this, please report it.

     

    Additionally, the registry method was initially adopted for more parameters, but these won't be available in Middlewerks for LE2. A more extensive use of it will be seen in LE3. I personally think it is strange that the engine itself does not record its own installation path to a global access for developers, but that might just be me.

  8. Hey! I just tried it and here is what I think:

     

    I think that I imagined it would be different than it is. I was thinking that it would be like a nested widget or embedded in the taskbar, that once I hover my mouse over it I could click on an option such as convert model, edit material, etc, then it would use my saved settings to perform an action. I'm talking about the way that there is a little grey bar at the bottom of Werkspace, and when you click on who's online, the names pop up. I was thinking that Middlewerks would be like that.

     

    But other than that instead of commenting further or asking any questions I'll just wait on your upcoming blog :P

    That's actually quite a good idea. I could have the program edit the registry and add a right-click option on all files under the "Middlewerks" menu.

     

    i.e., in Windows Explorer, right click "test.obj", select "Middlewerks > Convert Here" or "Middlewerks > Convert To...". I could code that in an hour, so no problem at all. Would you like that?

     

    I could also have it as a permanent tray icon with different functions available from it. I know I would like it, but I don't know how some people feel about having their OS invaded.

     

    @Vetal and MG: Are you using Windows XP? I'm sorry, I couldn't test for this operating system. I'll add a check that replaces these with regular buttons on non-aero systems if that is the problem.

     

    @Macklebee: Middlewerks is meant to bring usability to LE users. If you're comfortable enough with the command line tools, use them instead. Middlewerks for LE3 will include specific features and will be paid. This one is just a mellow release, if you wish.

  9. The Gui should be written in flowgraphs. Any problems with that? :)

    ;)

    Wha-? How unproductive is that?

    Anyhow, XML based would be a good approach in my opinion, with event handlers linking to reflection or DLL calls for native code. Somehow like XAML does it.

  10. AntiAlias is one of the most important features, since it makes programmer's art also look good.

     

    Cascaded Shadow Maps is also very important, since the current maximum range of 50 meter for shadows is quite ridiculous.

     

    Distance Blurred Shadows should be also in LE 3, since in reality a shadow is the more blurred the further away it is from a obstacle where the shadow is cast upon.

     

    Bullet Physics would be good to have too, since its used in movies like 2012. It doesn't have much features, but it's damn fast and good for mass physics. I hope this can be done using the plug-in Driver technology of LE 3.

     

    Graphicsless mode would be also good, since I want to use SDL for graphics Window creation, since I need to use SDL anyway for force feedback controllers, and of course I need a graphicsless mode for the game server program also.

     

    Maybe the whole renderer could be exchanged with a Voxel renderer also, if its also based on the Driver tech.

     

    PNG textures would be good to have, since DDS is quite useless unless it's uncompressed, and then it eats lots of disk space.

     

    Crysis like Ocean Water would be useful too.

    What can I say - I'm stomped. For once, I would have said the exact same thing.

    If this is in LE3, I'll roll on the floor crying of joy.

     

    Oh wait - My 2 cents would be a river editor / multiple water planes and streamed terrain (but this is already planned).

×
×
  • Create New...