Jump to content
MakeWebGames

Yet another engine


a_bertrand

Recommended Posts

I started to work on a brand new engine, not zap, not mccode, nothing you ever saw. The engine will not be open source, nor it will be free, yet, I believe it will offer what you guys expect:

- Complete open code for the owners.

- Secure.

- PHP 5.

- Commented.

- Well structured (without being over split).

- Completely modular / plugin based.

- Will be delivered as full game or base engine.

- Will be able to download / install plugins directly from the admin site.

- Template system.

For people with little to no knowledge the engine will provide a fully working game and a base where they will be able to plugin lot more functionality without much or any knowledge required.

For people willing to develop, the system will allow to develop quickly new pieces without having to change existing code, nor needing to know about complex frameworks.

Expected delivery date: March 2012

Price of a complete package: around 100$

Modules can be bought separately too.

The development process will work directly with the help of a beta team, which will be able to purchase a full package for the price of 20$ (1/5 of the price) at the end of the beta, or not buy it and simply not keeping the license. I will accept 5 beta testers (at least at this point) so the first 5 which are accepted will be granted to join the team. Of course credits will be given too ;)

Beta testers which will be inactive will of course not have the option to gain access of the full package at that given price.

Finally, if you want to develop modules for it, we will held a module shop, which will control the security, and the functionality of your module before putting it online (which means for the owners of the engine, using the shop will ensure working and secure modules). We will keep 20% of the sales for us, and 80% will be sent back via paypal to the developers. So it is also an opportunity to all developers to get a market there.

Djkanna promised he will contribute to the engine and modules too, I hope to see some of you join the boat as well!

I will come later on with a more and more detailed list of features which will be included in the March release.

Link to comment
Share on other sites

I am interested in helping, i would like to apply to be a developer, i was just talking to an old friend about creating a game engine, run through mostly plugins but can be run on it's own. If you can let me know the process i'd be happy to help, it'll give me something to do lately!

Don't be put off that i am a newcomer here either :)

Link to comment
Share on other sites

Great news.

This is something that has been requested over and over again, a well documented, extendable and quality engine.

I've had the chance to look at the current draft of the skeleton/base of this engine, and I must say it already is well documented and seemingly very easy to work with.

I am happy to contribute to the code where I can, and I wish you the best of luck.

This module store is equally a good idea, and in my opinion is much better than taking the forum route, as this way it ensures that the modules that are created have been well tested, well documented and work before ever reaching the marketplace.

Link to comment
Share on other sites

Providing there is a decent amount of people using this engine then I'd gladly port my current systems and potentially create new ones for the system.

Finally, if you want to develop modules for it, we will held a module shop, which will control the security, and the functionality of your module before putting it online (which means for the owners of the engine, using the shop will ensure working and secure modules). We will keep 20% of the sales for us, and 80% will be sent back via paypal to the developers. So it is also an opportunity to all developers to get a market there.

So you'd also deal with all customer support if it was going through your PayPal? What about the prospect of charge backs and such.. how would all this be managed?

Link to comment
Share on other sites

I have a few quick questions. I believe you could produce something of extremely good quality, however due to your area of work you do tend to be very professional. Normally good, but not always. For example creating an over complex system your average customer could not understand. (If it updates from the site that should not be an issue.)

- Complete open code for the owners.

- Secure.

- PHP 5.

- Commented.

- Well structured (without being over split).

- Completely modular / plugin based.

- Will be delivered as full game or base engine.

- Will be able to download / install plugins directly from the admin site.

- Template system.

Define what you mean by PHP5. I believe you’re not a massive fan of PHP’s oop, therefore will you be avoiding massive usage of it within this framework? So... would it all be in procedural?

What do you plan on using to communicate with the database (mysql_, mysqli, PDO,) or even what type of database will it be using?

“modular / plugin”, so how much would the programmer need to know? Example -> mccodes you need to do all the HTML etc yourself, but the core is there (inside globals that you include), for zap I believe it’s got functions for in game buttons etc, but the user still needs to call them. (if that made sense at all.)

“download / install plugins directly from site” free ones if going with the base engine or a fee for every download?

“Template system.” Your own or something premade (e.g. smarty).

 

Finally, if you want to develop modules for it, we will held a module shop, which will control the security, and the functionality of your module before putting it online (which means for the owners of the engine, using the shop will ensure working and secure modules). We will keep 20% of the sales for us, and 80% will be sent back via paypal to the developers. So it is also an opportunity to all developers to get a market there.

All I will say here is most modifications for current engines start at around $5, and would not be worth creating at all if you then lost 20%. As suggested above build this feature into forum software, and have two areas “site approved/ reviewed” that go through this channel and pay the 20%, and another for those who do not.

Edited by Dominion
Link to comment
Share on other sites

We could do customer support, but bug fixing other people code wasn't primarily our intention. No the idea was a simplified system, like an app store for phones, where for the customer you have 1 shop and from there you will find all. If there is a bug, that should be the developer work to do, however before reaching the shop we will install the plugin manually on our own setup and check how it's done. This explains the 20% share we take. Again it was an idea, if the price of the module if 5$ then we may need to lower the cost as taking 1$ each 5$ may be a bit too much... we shall see how it goes. Of course free modules will not cost the developer anything ;)

For over the complexity, yes, zap engine is over complex, too many directories, too complex. The design of this engine on the other side is really much simpler, if you want dom, I give you a copy of the current design and you evaluate it and tell us what you think. Deal? To give an idea of the directory structure:

- Config (config.php being the lonely content)

- Install (which will contain the main installer and then shall disappear)

- Language (will will contain the language file(s) )

- Libs (shared libraries of the framework)

- Modules (contains 1 directory per mododule)

- Templates (again 1 directory per template)

On the root, 2 files, index.php and a "marker" file. That's it.

Here is an example taken directly from common.php found in libs:

 

/**
* Stores menu entries in forms of label, position in the list and link.
* It autmatically retreive the module calling it.
*/
class MenuEntry
{

   public $label;

   public $position;

   public $link;

   /**
    * Create a new menu entry
    * 
    * @param $label string
    *            label displayed on the menu
    * @param $position integer
    *            used to sort menu entries
    * @param $link string
    *            if null then the module name will be used.
    */
   public function MenuEntry ($label, $position = 0, $link = NULL)
   {
       $this->label = $label;
       $this->position = $position;

       // Link is not defined then let's extract it from the module name
       // calling this function.
       if ($link == NULL)
       {
           $bt = debug_backtrace();
           $filename = str_replace("\\", "/", $bt[0]["file"]);
           $path = explode("/", $filename);
           array_pop($path);
           $this->link = array_pop($path);
       }
       else
           $this->link = $link;
   }

   /**
    * Sort the menu entries by their position then by their label.
    * 
    * @param $arrayOfMenuEntries unknown_type           
    */
   static function Sort (&$arrayOfMenuEntries)
   {
       usort($arrayOfMenuEntries, "MenuEntry::SortMenuCallback");
   }

   private static function SortMenuCallback ($a, $b)
   {
       if ($a->position > $b->position)
           return 1;
       else if ($a->position < $b->position)
           return - 1;
       return strcmp($a->label, $b->label);
   }
}

 

As you can see, I will try to document the code. And yes this is one of the rare class of the engine.

By PHP 5 I mean I may use libraries which will be there with PHP 5 and not 4, like XML libraries for example and make sure the code runs with PHP 5.x. PHP 5 by itself doesn't say you MUST code OO, you can but it is not a requirement. I decided to use some classes, for the DB as well as for other structures like menu, but for most part it will not be OO. Why? Because it would make again the system too complex for new comers, and actually you may not gain much. Here creating a plugin is simply creating a directory, and create a file with the right name inside. Done that the system will use it. No need to extend particular class or attach your module in other ways.

For the database I'm evaluating MySQLi, PDO could be an option too, but I think MySQLi will do the trick. Actually I'm thinking of a way to hide the database as much as possible for most cases.

For the HTML generation, you will have button functions, and "box" or "window" functions, such that the look will be consistent across the application. The framework may provide also list functions which generate click-able table or whatever. We shall see how the needs come along the road. Of course you are free to do all the HTML yourself as module developer. Actually for a normal "page" module you will use the standard echo function to show something.

For the template, it is mainly a PHP page. It will not be a self invented format. Why? Again to let the developer use what they know. Why not smarty? Simply because it would be waste of resources and over complex for the average usage we would have here.

I hope I didn't missed any question, if yes please tell me, and I shall try to answer to my best. If other questions come, please ask them too ;)

Link to comment
Share on other sites

I could Beta locally on windows(vista) and linux(ubuntu 10) as well as online linux(centos). Sounds Fun.

edit: Smarty templating is nice, but a waste of time 90% of the time. I am glad you are not going that route.

Also if you have msn i could help give you some tricks i picked up on hiding the database from the user. Mine is [email protected]

Edited by runthis
Link to comment
Share on other sites

I've got a question about the directory structure.

 

To give an idea of the directory structure:

- Config (config.php being the lonely content)

- Install (which will contain the main installer and then shall disappear)

- Language (will will contain the language file(s) )

- Libs (shared libraries of the framework)

- Modules (contains 1 directory per mododule)

- Templates (again 1 directory per template)

On the root, 2 files, index.php and a "marker" file. That's it.

I see no use in having a lang and template directory separate from each other. This will cause problems, as sentence structures do not remain the same in all languages. I'd suggest a per-template language, much like a CMS.

Also then, the config directory is in www root? That's not good security practice, I'd suggest it be lowered to below the root. Same applies to shared libraries.

Maybe,

 

/home/spud

./config

./libs

./www

- template

-- defualt

--- en-gb

--- af-za

- modules

- install

Lastly, when will the module guidelines be published. I'd like to see what is possible, and contribute if I have the time.

Link to comment
Share on other sites

Language contains an XML file which is partially auto-generated partially managed. It has nothing to do with the templates, as the templates normally do not contain texts. You may see it later on in action it may be will be then more clear. Anyhow really the language file is pure text translation and is independent from code and presentation. Therefore it definitively make sense to place it somewhere else.

For the config being in the same directory, again this is partially due to the fact the admin / install will need to edit it, anyhow it's inside a directory which is not browsable from the browser (.htaccess), so unless somebody injects some code to read it, you don't risk anything and moving it above will not increase the security at that point. Keep in mind that most PHP code works like that too ;)

For the guidelines for the modules, it will come, let me first stabilize the whole framework then I will publish all specs, and quiet certainly give away mini-frameworks to let test it without the need of buying a package.

Link to comment
Share on other sites

In order for someone to develop modules for this, they'd have to purchase a license I assume to be able to work with the full code, then have to give up 20% of sales too? Potentially a nice little earner there...

What game type is the engine going to take? Is it a text-based one, or is it a 2D engine? I may have missed this somewhere along the thread.

Link to comment
Share on other sites

To develop modules you could start without paying anything, as said, we will give out all the spec and even some sort of environment to test your module. Of course it will not be the full engine. The 20% we keep allow us to offer basically a review, and hosting service. Nothing odd compared to all the app market out there for phones.

For the kind of game, the first package will be a text game where the second one planed will be kinda mixed one. Both will use the same engine and modules.

Link to comment
Share on other sites

Development progress quickly and even more so as the base framework is nearly all there.

Now I will not be there till about the 5th Jan so don't expect to ear from here till then ;)

To give an hint of what will be the first package sold, check this:

 

Medieval Knight

Start:

Player start as a squire of a small / poor knight.

Goal of the game:

Be the best knight yourself.

Activities:

Train

Purchase /sell weapon / armors

Battle in tournaments (bows, sword, and ride)

Battle for quests

Repair weapons and armors

Craft weapon and armors

Buying and selling manors / castles (limited numbers per world)

Invading / defending manors / castles

Stats:

Dexterity (% to hit depending on the complexity of the weapon and agility of the opponent)

Agility (% to evade attack of the opponent)

Strength (Hit points)

AC (Action points which will determine how many things you can do before running out of time... re-generate slowly)

Weapon stats:

Damage

Reload time

Complexity

Durability

Health

Price

Damage / Reload time / Complexity shall make a constant

 

Armor stats:

Damage absorption

Agility decrease

Durability

Health

Price

Damage absorption / agility / durability shall make a constant

Game features:

Register / lost password / login

Game news

Tutorial

Online market (between players)

Real-time chat

Simple forum

Offline messaging (like emails)

Top lists

And weekly contests

Admin features:

Object creation / edition

Game news edition

User management (stat view, give / remove items, credits)

Rules tweaking

Language management (change game texts)

Table editors (which let edit tables but not all)

Progression view (to check if some player cheat)

Log view (to check actions made on the game)

Game Stats

Link to comment
Share on other sites

  • 2 weeks later...
  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...