Jump to content

Pixel Perfect

Members
  • Posts

    2,110
  • Joined

  • Last visited

Posts posted by Pixel Perfect

  1. I partly agree with you but I still think you are going to find that artists are still in a position where they struggle to realise anything but the simplest games even with LE3. Flowcharts are great for simple stuff but anything more complex becomes a complex exercise in itself! The same with scripting.

     

    In reality, for anything other than a very simplistic game, Artists and Programmers need to team up. This is why you will find programmers being a little sceptical about engines designed to automate game play functionality.

     

    I am however prepared to eat my words if need be as most of us have not seen LE3 in any form yet :)

  2. I'm perfectly happy to let Shiva and Unity have the script kiddies. We'll take the programmers who appreciate an object-oriented C++ API, please. biggrin.png

    Really, whilst I'm all for a C++ OOP environment that does seem to be flying in the face of what a large percentage of the LE3 wannabes seem to be wanting. Are you saying that LE3 is aimed specifically at programmers again as was the case with LE2 whilst the majority seem to want less coding and more automation? Is this an interesting final twist emerging or are you simply relying on the programming community's altruistic donation of code to enable the more artistic members to realise their own game development dreams? If that's the case then that seems strangely at odds with not providing a plugin type framework which really aids community development and integration!

  3. I... The fact of the matter is most devs don't finish their projects. For a game engine it's a numbers game. You just have to get a very large number of devs so that the small % of them that will actually ever finish a game will do it with your engine. ...

    I would completely agree with this. Even a fairly simple game engine is beyond the capabilities of most would be game designers if they are having to code it themselves and have no prior experience of writing a game engine. Whilst LE2 has some issues (what engine doesn't) I believe it is perfectly capable of forming the basis of a viable game engine and has been for a while. It is a numbers game as Rick says!

  4. If I understand you correctly you are wanting to spawn named actors in real time at given waypoints and then retrieve those actors by name? Why not simply store pointers to those objects as they are created along with the names you want to reference them as in a map container. You can then write a function to search the indexed map container for any named Actor and return a pointer to the actor instance.

     

    You could also used a named key to store the Actor name in the entity itself. You could save the pointer and class name as keys too if you wanted so you could cast it back to the the Actor Class.

     

    I'm not sure if you actually meant the waypoints (markers, dummy objects etc) themselves but the same techniques could be used.

  5. ok so would it be best to have a separate function (apart from the mObj::~mObj() function) that will delete the itself. when i want the object to removed because i'm done with it, I call this function.

    I would say no. Simply call the delete function on the stored pointer when you wish to delete this object and lets its destructor take care of this.

     

    After i'm done processing this object with outside object and functions. Can i remove it from my vector and have it manage itself. more specifically. once it collides, it shows a destroyed model. at this point i want to remove it from my vector and the object starts a timer. when the timer hits 5 secs it deletes itself. am i making sense, and if so, is this praticale?

    You should retain the pointer to the object for as long as the object is still required. So assuming the continued existence of the model being rendered is dependent on the existence of the object (that is the object is responsible for the destruction of the model when the object is itself destroyed) the pointer should be retained until such point as you no longer require the objects existence.

     

    If I understand your description, you have a model (possibly dynamic and animated) which is destroyed upon collision with some unspecified object/s. This model is then replaced with another model which represents the destroyed original. How you handle this very much depends on whether the new model has a separate existence as a class object in its own right, in which case the previous object could be destroyed at this point, or whether the same object invokes the model replacement in which case it would need to remain until such times as you no longer wish to display the destroyed model. I'm not sure if the 5 second timer you are referring to indicates that the destroyed models existence is planned to only be for 5 seconds and then disappears from the game?

     

    Either way, so long as you retain the pointer to the object until it needs to be destroyed it makes little difference as to whether that is still in your vector collection or held elsewhere. As I don't know if your collection has any further purpose than just to maintain a list of existing game objects for subsequent destruction, or if it is used for calling update functions for instance every iteration of the game loop, I can't really comment on the need to remove it prior to the start of the timer or once it completes.

  6. When you call delete on a pointer you are actually deleting the object the pointer is pointing to, not the pointer itself. The container will generate its own pointer which will point to the same object in memory when you use push_back. So if you delete the object both pointers will now point to an object that no longer exists. You can forget about pointers for all intents and purposes, they don't need explicitly deleting unlike the objects they point to

  7. It's an extended version of the standard engine dll which exposes additional functionality that Josh did not include in the standard DLL but is accessible in BMax. Can be useful depending on what you are attempting to do with the API. Look at the Asset Store entry for this to get a list of the additional functionality.

  8. I'd certainly agree with that Flexman. A balanced overview and sound advice!

     

    Why would I waste time on all that? I already showed you something I am not aware that any other engine can do. I'm not going around claiming with 100% accuracy there is nothing that can match it in any test, but calling LE2 slow for what it renders on screen is ridiculous.

    Well maybe to back up the statement you previously made. Most decent engines can probably demonstrate something no other engine can do. I'm not knocking LE2 as I went out of my way to point out, just challenging the statement you made. If you don't want to be challenged don't make the statements! Further to that, I don't believe I ever claimed that Leadwerks was slow for what it renders on screen any more than I claimed it was probably the fastest engine in the world.

     

    People make ridiculous demands upon hardware all the time Josh, this is not unique to Leadwerks. It's more a reflection of their stupidity than anything else.

     

    I don't believe anyone mentioned that PC Gamers had to be exclusively PC only users! But by definition a PC Gamer requires the use of a PC does it not.

     

    The simple fact is, game designers Indie or not have always tailored their games to match the hardware its intended to run on or they very quickly go out of business. So the whole argument about hardware is irrelevant, as a developer you simply chose which marketplace you are aiming for and design for that marketplace.

     

    The mobile market has had **** video hardware for years despite it changing now, but that didn't stop people developing games for it. In fact most platforms are overrun with games.

    • Upvote 2
  9. Credible benchmark tests require stated hardware and operating environment and comparisons for a range of competing products. I don't see any of that here!

     

    People don't understand hardware specs but they do understand price. If you give them a low-priced crippled option, they will take it.

    You seem to have a very low opinion of people Josh if you sincerely believe this. Is this the current level of end user you are gearing LE3 to? I don't know of any PC gamers who buy such PCs even though they are available. The market was created for people who want a cheaper PC for primarily browsing the Internet, as I'm sure you are well aware, and they serve that purpose well.

  10. Okay, Leadwerks Engine 2 is possibly the fastest engine in the world.

    As much as I like LE2 this quote made me feel like I was in an episode of the Twilight Zone! Whilst I would never argue that LE2 is not a great engine do you have any real bench mark tests to back this statement up? LE2 is certainly not the only engine out there with deferred rendering.

     

    That said, the PC market has fallen apart and hardware specs today are worse than they were three years ago.

    The best hardware specs today for PCs far exceed anything in the past, this is again a completely meaningless statement that you keep regurgitating! The cheapest PC specs are lower than some of those available 3 years ago but this is simply in order to compete with all the cheaper mobile type devices that it finds itself in competition with and is simply driven by market forces. You get what you pay for, nothing has changed in that respect!

  11. As DigitalHax has alluded to, the key thing here is the shader usage and definition. As a general rule:

     

    Use _alphatest versions of the frag shaders for full transparency (is either fully transparent or not) which can be used in the main world. So great for things like vegetation etc. This treats all transparency values above a threshold value as fully transparent and is more efficient to render.

     

    Use _alpha versions for all graduated transparency which needs to be in the transparency world.

  12. Shadmar has recently stated that he's currently busy working on another project but will hopefully be back and contributing again soon. I'm guessing that's probably why you've had no response to this.

     

    You could try the direct approach and sent him a private message.

  13. Yeah, the Wiki still generally works and is a good source of information, it's just there a quite a few broken links in it. It's not really been maintained for some time. Users don't have editorial access to it any more because of the spamming issues as gamecreator pointed out. It's a shame really.

  14. You guys just crack me up! Not one published game made with LE2 yet * and you're discussing what's required for an MMO biggrin.png

     

    * I don't really count Hoodwink; as the only part of the engine it used was the renderer ... although full kudos to NA.

     

    I'm off to start reading through the RAKNET documentation. Thanks to all who provided practical advice and provided pointers to key areas I'll need to familiarize myself with. I hope you'll provide some feedback as you develop you're multi-player engine DigitalHax and I'll try and do likewise. I'll be taking a look at your code too Scarlet, thanks for releasing your tutorials I'm sure they will be really helpful.

  15. I'd much prefer factual advice from real experience over supposition (I have Mika on constant ignore due to his past history of this). It's a lot more helpful to people starting off down this route who may be hoping to get some good pointers from this thread.

  16. You would need to include the function definition as shown below:

     

    TModel GetMeshModel(TEntity _Entity)
    {
           string strClassname;
           while (_Entity != NULL)
           {
                   strClassname = GetEntityKey(_Entity, "class");
                   if (strClassname == "Model")
                   {
                           return _Entity;
                   }
                   _Entity = GetParent(_Entity);
           }
           return NULL;
    };
    

     

    and then modify your code so that the entity you are looking to pass the message to is obtained from:

     

    GetMeshModel(pick.entity)
    

×
×
  • Create New...