Guest Posted June 16, 2013 Posted June 16, 2013 Morning all, I was just wondering, in your opinion what should an engine or an OTB (Out The Box) solution have? And what requirements should be met in your eyes? For example, should it be OO and not procedural? Should it be modular or not? Should it be compatible with MySQLi and any other drivers? PDO? Just working some things out and this should answer most the questions, all opinions are appreciated. Cheers Quote
LeeMason Posted June 16, 2013 Posted June 16, 2013 It depends, If you're going to create an OTB solution then I doubt you would have developers using it if it's a paid solution. With that in mind it would need to be very easy to use, very easy to extend without coding knowledge with a vast array of modules available to plug in and out. With this you'll probably be targeting gamer's that want to take the next step and make there own game much like mccodes. If you were to create an engine then it will primarily be for the developers either to act as a base of a game the developer is creating or if they have been commissioned to create one. With this in mind the code needs to be easy to read, understand whats going on and have a good Wiki/Docs so they can learn how to use it. The code would have to be $hit hot aswell, if the developer doesn't think the code is up to scratch, I don't think they would bother using it. So, before you start thinking about features I think you need to decide whether you will be making an OTB or an Engine, with that then we can throw ideas out for you. ^^ IMO Quote
Guest Posted June 16, 2013 Posted June 16, 2013 It depends, If you're going to create an OTB solution then I doubt you would have developers using it if it's a paid solution. With that in mind it would need to be very easy to use, very easy to extend without coding knowledge with a vast array of modules available to plug in and out. With this you'll probably be targeting gamer's that want to take the next step and make there own game much like mccodes. If you were to create an engine then it will primarily be for the developers either to act as a base of a game the developer is creating or if they have been commissioned to create one. With this in mind the code needs to be easy to read, understand whats going on and have a good Wiki/Docs so they can learn how to use it. The code would have to be $hit hot aswell, if the developer doesn't think the code is up to scratch, I don't think they would bother using it. So, before you start thinking about features I think you need to decide whether you will be making an OTB or an Engine, with that then we can throw ideas out for you. ^^ IMO Thanks, I am looking into the benefits of both and wanted peoples opinions before I made a final descision. Quote
Aventro Posted June 16, 2013 Posted June 16, 2013 It should be object-oriented in a way where it makes sense. We all have to be reminded here using classes doesn't mean you're actually writing object-oriented code. Don't try do anything fancy on purpose. You must use namespaces and a compliant PSR-0 Autoloader. This ensure the web application to be modern and you allow your users to use any external library that exists, *because* let's face it, every good library supports PSR-0 today. You must use a proper software architecture design, a good start is to look around pattern similar to MVC. The very least you must make sure the pattern is separating business logic with presentation logic. Most engines today are CV-patterns. People use MVC of a good reason, it's the best way to do it. Of course they are alternatives as N-Tier architecture and stuff, but I've never used it. Reinvent the wheel ... but only if you have to. Please consider using a dependency manager (Composer!!!) which gives you to access to every popular library as of today. It comes with a very powerful autoloader (files, classmap, psr-0). Here you can get dependencies your engine needs, personally I always use the Symfony HttpFoundation because writing a object-oriented HttpInterface is probably going to suck and it's hard. You don't have to write everything yourself, you really don't. Just look at Laravel. 1 Quote
rockwood Posted June 17, 2013 Posted June 17, 2013 It should be object-oriented in a way where it makes sense. We all have to be reminded here using classes doesn't mean you're actually writing object-oriented code. Don't try do anything fancy on purpose. You must use namespaces and a compliant PSR-0 Autoloader. This ensure the web application to be modern and you allow your users to use any external library that exists, *because* let's face it, every good library supports PSR-0 today. You must use a proper software architecture design, a good start is to look around pattern similar to MVC. The very least you must make sure the pattern is separating business logic with presentation logic. Most engines today are CV-patterns. People use MVC of a good reason, it's the best way to do it. Of course they are alternatives as N-Tier architecture and stuff, but I've never used it. Reinvent the wheel ... but only if you have to. Please consider using a dependency manager (Composer!!!) which gives you to access to every popular library as of today. It comes with a very powerful autoloader (files, classmap, psr-0). Here you can get dependencies your engine needs, personally I always use the Symfony HttpFoundation because writing a object-oriented HttpInterface is probably going to suck and it's hard. You don't have to write everything yourself, you really don't. Just look at Laravel. CV-patterns. ? Quote
Aventro Posted June 17, 2013 Posted June 17, 2013 Controller View, basically you're missing out on the Model. Quote
Guest Posted June 17, 2013 Posted June 17, 2013 I find myself using MVC, or at least trying to do that, however CV makes more sense. Cheers Aventro Quote
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.