Jump to content
MakeWebGames

MakeWebGames engine?


Dave

Recommended Posts

It's been a long while since I built or touched any of the popular game scripts that are around today. However since resurrecting the forum the nostalgia has become very real. I've been toying with the idea of creating an open source community engine based of modern frameworks and using modern technologies.

My thoughts right now are:

I'm looking for suggestions on the technology stack (should we use React? for instance) and for anyone who wants to contribute into the engine. If the engine goes well I'll certainly skin and launch a game with it.

 

  • Like 2
Link to comment
Share on other sites

2 hours ago, Script47 said:

I could get down with this, my only issue might be Vue.js.

Never used it.

I've personally been toying with the idea of a game engine which is for mobiles PBBGs. So Ionic for the app and Laravel for the server.

I just actually started doing the same thing except I was leaning more towards Electron for a desktop app.

Vue isn’t that difficult, I myself just don’t understand Vuex at all so I always opt out of it.

 

Link to comment
Share on other sites

10 hours ago, Script47 said:

I could get down with this, my only issue might be Vue.js.

Never used it.

I've personally been toying with the idea of a game engine which is for mobiles PBBGs. So Ionic for the app and Laravel for the server.

The front-end framework is up for discussion, Laravel ships with good Vue support so it seemed like a good decision. Truth be told I've not written much Vue either, but it's got a pretty easy learning curve I believe.

Link to comment
Share on other sites

Hey, if in the process of this project (whether it comes to fruition or not) I pickup a new skill, I'll be happy with that.

@Dave have you got anything else planned already?

Truthfully, I think it should be a skeleton, rather than an engine, @sniko's Panther was good in the sense that it didn't tie you down to a genre (although it came with the mafia genre theme). 

I think we should make a base and then have branches for different genres and people can focus on the genre they want. 

55 minutes ago, SRB said:

Should be enough on Vue, for free, here to get started - https://laracasts.com/series/learn-vue-2-step-by-step

Cheers, @SRB.

Edited by Script47
Link to comment
Share on other sites

39 minutes ago, Script47 said:

Hey, if in the process of this project (whether it comes to fruition or not) I pickup a new skill, I'll be happy with that.

@Dave have you got anything else planned already?

Truthfully, I think it should be a skeleton, rather than an engine, @sniko's Panther was good in the sense that it didn't tie you down to a genre (although it came with the mafia genre theme). 

I think we should make a base and then have branches for different genres and people can focus on the genre they want. 

Cheers, @SRB.

I agree, the framework of the engine will be the first priority. In an ideal scenario we'll have pluggable feature sets. So we can create meta packages of gangster, fantasy, sci-fi etc features.

The core would contain everything typically shared by all genres:

  • Authentication
  • Communications
  • Notifications / Events
  • Donations / Payments
  • Stats
  • User Attributes (money, etc)
  • User Preferences
  • Admin Framework 
  • Theming 

Probably some things I missed in the above.

Link to comment
Share on other sites

1 hour ago, Script47 said:

Hey, if in the process of this project (whether it comes to fruition or not) I pickup a new skill, I'll be happy with that.

@Dave have you got anything else planned already?

Truthfully, I think it should be a skeleton, rather than an engine, @sniko's Panther was good in the sense that it didn't tie you down to a genre (although it came with the mafia genre theme). 

I think we should make a base and then have branches for different genres and people can focus on the genre they want. 

Cheers, @SRB.

I think this is one of the many reason why to use a framework. Something like Laravel contains everything needed to make whatever you decide to make.

When you run

laravel new appName

in your console you are actually creating a bootstrapped Laravel app because Laravel is actually contained in “laravel/framework” not “laravel/laravel” repo.

I honestly don’t see the need in recreating the wheel. Plus, it’s extremely modular! Need to enter new rows into the db when a user signs up? Just listen for the Registered event with your custom listener

Link to comment
Share on other sites

1 hour ago, Script47 said:

So, with all that outta the way,  where do we start?

A Github organisation called MakeWebGames with the project within that?

I actually set this up yesterday ironically: https://github.com/makewebgames

21 minutes ago, KyleMassacre said:

I think this is one of the many reason why to use a framework. Something like Laravel contains everything needed to make whatever you decide to make.

When you run

 

laravel new appName


laravel new appName

 

in your console you are actually creating a bootstrapped Laravel app because Laravel is actually contained in “laravel/framework” not “laravel/laravel” repo.

I honestly don’t see the need in recreating the wheel. Plus, it’s extremely modular! Need to enter new rows into the db when a user signs up? Just listen for the Registered event with your custom listener

Yup, we'd use anything that Laravel provides out the box, like the auth. We'd need to determine if we wanted to use things like the service container, or if we want to use facades only.

The extensibility side of the project is the complex part, as with more extensibility you introduce more abstraction and complexity. It'd need to be a nice balance between being a nice powerful framework whilst being easy to learn and easy to plug modules into.

Link to comment
Share on other sites

Just now, Dave said:

I actually set this up yesterday ironically: https://github.com/makewebgames

Yup, we'd use anything that Laravel provides out the box, like the auth. We'd need to determine if we wanted to use things like the service container, or if we want to use facades only.

The extensibility side of the project is the complex part, as with more extensibility you introduce more abstraction and complexity. It'd need to be a nice balance between being a nice powerful framework whilst being easy to learn and easy to plug modules into.

If you weren’t too concerned with using all custom code with this there are a few things out there like a modules plugin for people to easily create modules within their own app/namespace easily without having to mess with their composer file in the root.

And just enforce Contracts. This would really only be difficult to the “Core” developers but easy for “module” developers because basically they just have to connect the dots

Link to comment
Share on other sites

/me inserts oar...

I've rewritten a number of small ""engines"" over the years, and what I personally discovered was a number of things.

a) Like a lot of projects, if you start arsing around deciding on the name or the framework ... you are royally fracked. You are talking about Laravel, rather than a PSR-7 compliant system, so as far as I can see, you have already shot yourself in the foot. Laravel is good, but it suffers from a number of problems. A game framework needs to look at a number of issues; there's the core command dispatching which itself needs an event listener - not a framework. Solve *that* problem, and you might be able to make something which is framework agnostic as not everybody has the capability or wish to run a Laravel based system.

b) Why are still talking about PHP? There's a wealth of languages out there that are *potentially* better for a gaming project. Python being an obvious choice, though there are some other languages such as Go which may be suitable.

@KyleMassacresince you replied before I could post... mm Laravel modules; see point a). Yes, I agree a modular system is a *good thing* (tm), but you have automatically tied yourself to a specific framework. Perhaps something a little more open?

Okay, so I've inserted oar... so what would *I* choose? A fully PSR-7 compliant system - Laravel breaks down here as it likes to do things *its* way - And what about a DI? I seldom use the DI that is provided with a framework preferring something a little more flexible. Laravel uses a service container principal which is ... slightly smelly for those who are purists. It's a nice concept but again suffers from some odd problems which will bite you from time to time. Actually, given a choice, I'd choose Python probably using Flask or Django or perhaps Go. Heck even Perl is a decent choice assuming you can tolerate the number of £$%^&*'ing symbols.

tl;dr;

1. Don't "name" the project - nobody cares what is called as long as it works (wip will suffice for instance)
2. Look at simpler, cleaner frameworks that are more generic allowing the end-user [programmer] a greater degree of flexability
3. Don;t ever trust SRB - he really does like midgets
4. Look outside of PHP, there is a lot to be gained by looking at other languages

Link to comment
Share on other sites

6 minutes ago, Alan said:

/me inserts oar...

I've rewritten a number of small ""engines"" over the years, and what I personally discovered was a number of things.

a) Like a lot of projects, if you start arsing around deciding on the name or the framework ... you are royally fracked. You are talking about Laravel, rather than a PSR-7 compliant system, so as far as I can see, you have already shot yourself in the foot. Laravel is good, but it suffers from a number of problems. A game framework needs to look at a number of issues; there's the core command dispatching which itself needs an event listener - not a framework. Solve *that* problem, and you might be able to make something which is framework agnostic as not everybody has the capability or wish to run a Laravel based system.

b) Why are still talking about PHP? There's a wealth of languages out there that are *potentially* better for a gaming project. Python being an obvious choice, though there are some other languages such as Go which may be suitable.

@KyleMassacresince you replied before I could post... mm Laravel modules; see point a). Yes, I agree a modular system is a *good thing* (tm), but you have automatically tied yourself to a specific framework. Perhaps something a little more open?

Okay, so I've inserted oar... so what would *I* choose? A fully PSR-7 compliant system - Laravel breaks down here as it likes to do things *its* way - And what about a DI? I seldom use the DI that is provided with a framework preferring something a little more flexible. Laravel uses a service container principal which is ... slightly smelly for those who are purists. It's a nice concept but again suffers from some odd problems which will bite you from time to time. Actually, given a choice, I'd choose Python probably using Flask or Django or perhaps Go. Heck even Perl is a decent choice assuming you can tolerate the number of £$%^&*'ing symbols.

tl;dr;

1. Don't "name" the project - nobody cares what is called as long as it works (wip will suffice for instance)
2. Look at simpler, cleaner frameworks that are more generic allowing the end-user [programmer] a greater degree of flexability
3. Don;t ever trust SRB - he really does like midgets
4. Look outside of PHP, there is a lot to be gained by looking at other languages

1. Couldn't agree more, we don't need to get bogged down on the details until later and truth be told, no one cares about what the engine is called.

2. Do you have any in mind? The reason I'd personally go with Laravel is because of the ease of development (read: speed) and familiarity with it.

3. ... but... he seems noice?

4. The issue with this is that majority of us are PHP developers by trade and I don't think (obviously I can't speak for the rest but in all likeliness) we are well versed in other languages to make something worthwhile.

Link to comment
Share on other sites

3 minutes ago, Alan said:

/me inserts oar...

I've rewritten a number of small ""engines"" over the years, and what I personally discovered was a number of things.

a) Like a lot of projects, if you start arsing around deciding on the name or the framework ... you are royally fracked. You are talking about Laravel, rather than a PSR-7 compliant system, so as far as I can see, you have already shot yourself in the foot. Laravel is good, but it suffers from a number of problems. A game framework needs to look at a number of issues; there's the core command dispatching which itself needs an event listener - not a framework. Solve *that* problem, and you might be able to make something which is framework agnostic as not everybody has the capability or wish to run a Laravel based system.

 b) Why are still talking about PHP? There's a wealth of languages out there that are *potentially* better for a gaming project. Python being an obvious choice, though there are some other languages such as Go which may be suitable.

@KyleMassacresince you replied before I could post... mm Laravel modules; see point a). Yes, I agree a modular system is a *good thing* (tm), but you have automatically tied yourself to a specific framework. Perhaps something a little more open?

Okay, so I've inserted oar... so what would *I* choose? A fully PSR-7 compliant system - Laravel breaks down here as it likes to do things *its* way - And what about a DI? I seldom use the DI that is provided with a framework preferring something a little more flexible. Laravel uses a service container principal which is ... slightly smelly for those who are purists. It's a nice concept but again suffers from some odd problems which will bite you from time to time. Actually, given a choice, I'd choose Python probably using Flask or Django or perhaps Go. Heck even Perl is a decent choice assuming you can tolerate the number of £$%^&*'ing symbols.

tl;dr;

1. Don't "name" the project - nobody cares what is called as long as it works (wip will suffice for instance)
2. Look at simpler, cleaner frameworks that are more generic allowing the end-user [programmer] a greater degree of flexability
3. Don;t ever trust SRB - he really does like midgets
4. Look outside of PHP, there is a lot to be gained by looking at other languages

I totally agree, however a fully compliant PSR-7 would require a fair amount of custom, new code, which in turn would have very little support. The beauty of using an existing framework, be it Symfony, Laravel, Zend or something else is that there is support for many fundamentals employed by said framework. Resulting in better all round support for parts of the framework that might not be documented well. Some developers love the idea of creating everything themselves, but in reality in a modern development world that's one of the worst things you can do.

I also would say for someone coming into programming for the first time and wanting to learn from the engine (like I did with McCodes) it'd be great for them to have framework experience, providing it's a popular one, to further help their career. People in the software / web development industry are very familiar with the big names.

PHP is my go to as it's simple, it's easy and along with the above there's a huge market for PHP developers. There are many other better languages with amazing features, but I don't believe the goal is to create a mammoth proprietary framework / engine in a more obscure language than what this forum, and from my perspective, the PBBG world is used to. 

DI is an interesting topic, I'm surrounded by it on a day to day basis but this boils down to the engines goals. DI by nature is very much a software concept and it's not entirely needed in simpler applications. It really depends on how we wish to craft the extensibility portions of the framework which in turn depends on how complex we want it. Do we want a download and hack experience (Like McCodes) or a more of a download and extend system.

In my opinion the goal of the engine is to:

  • Open Sauce
  • Allow new programmers an entry point into programming to build something they can enjoy 
  • Provide a great base to start a game
  • Teach some good programming practices 
  • Be simple enough, but well built to appeal to newbies and experienced devs
  • Some modularity so plug and play is possible 

To answer your tldr;

  1. I was just going to call it "Engine" makewebgames/engine is fine and not really a name!
  2. I agree some investigation into the framework is important, maybe we don't want to be bound by Laravel's way and use something like Symfony.
  3. Don't worry I won't, never trusted that guy ?
  4. As mentioned above I'd love to build this in a modern, new, fun language. But fundamentally it's a nostalgia project to try achieve the goals above.

These are all just my opinions on working with proprietary software with it's own implementation of basically everything in software engineering. Magento is a beast.

Link to comment
Share on other sites

Good points ... I note that SRB may be noice but is not to be trusted ?

Okay, lets gloss over the language - personally I've been programming in so many different languages that it's probably about time I wrote my own -- the grumpy compiler perhaps? Other languages are useful in that you learn tricks from them that you port to your own code; so being a cunning linguist (careful...) gives you and edge over the monosyllabic? (mono linguist) programmer.

It seems we are agreed that naming conventions are unimportant - at least in respect of the project itself.

So... it comes down to frameworks .. what is easy for Johnny Newb to pick up, but permits Susy Oldhand the ability to chop and change the internals at will? How about a playoff - Build a few small engines that have authentication, plus one or two *very* basic interactive modules (think crimes, or gym from mccodes), under the framework of your choice and submit those for discussion. I'm more than willing to join in at that level and I won't be using Laravel or Symphony!

Link to comment
Share on other sites

1 minute ago, Alan said:

Good points ... I note that SRB may be noice but is not to be trusted ?

Okay, lets gloss over the language - personally I've been programming in so many different languages that it's probably about time I wrote my own -- the grumpy compiler perhaps? Other languages are useful in that you learn tricks from them that you port to your own code; so being a cunning linguist (careful...) gives you and edge over the monosyllabic? (mono linguist) programmer.

It seems we are agreed that naming conventions are unimportant - at least in respect of the project itself.

So... it comes down to frameworks .. what is easy for Johnny Newb to pick up, but permits Susy Oldhand the ability to chop and change the internals at will? How about a playoff - Build a few small engines that have authentication, plus one or two *very* basic interactive modules (think crimes, or gym from mccodes), under the framework of your choice and submit those for discussion. I'm more than willing to join in at that level and I won't be using Laravel or Symphony!

Haha yeah create the Alanguage, create your own crazy syntax whilst you there and I'm sure you'll get mass adoption ASAP in the modern world of programming. 

Naming is irrelevant unless we intended to market and try profit from the engine, which is certainly not the purpose! Not like those money grabbing fools at MCCodes.

That's a new idea, I guess we'll need to decide on which frameworks to trial:

These guys seem to be the more popular ones at the moment. Maybe we can have multiple people choose their favourite framework and build the same concept and vote on the outcomes.

Link to comment
Share on other sites

3 minutes ago, Alan said:

Love it!

I'm expecting an abusive message from @ColdBlooded once he wakes up haha.

1 minute ago, Script47 said:

How about a poll for the framework?

I think we collect all popular PHP frameworks, make a poll to select the top 3 or so then go ahead with @Alan's plan of the PoC concept on each framework.

2 minutes ago, Alan said:

Okay ... so what are the parameters / limitations? And how about time-frame since I know most of us are probably gainfully employed.

I think as you said it should be a small subset of a game engine, something really simple:

  • Authentication
  • Gym
    • Stats
    • UI for training

The time window would have to at least be a couple of weeks to allow for people to submit their entries, potentially people might form small teams. Maybe there could even be a prize!

  • Sad 1
Link to comment
Share on other sites

Alan is clearly right here, no one uses PHP anymore so I propose *clears throat*

 

BLOCKCHAIN TECHNOLOGY

 

That's right, a decentralized game engine based up on Sawtooth

Link to comment
Share on other sites

Just now, Ian said:

Alan is clearly right here, no one uses PHP anymore so I propose *clears throat*

 

BLOCKCHAIN TECHNOLOGY

  

That's right, a decentralized game engine based up on Sawtooth

Be the easiest way of getting $50 million in seed funding.

Link to comment
Share on other sites

15 minutes ago, Dave said:

The time window would have to at least be a couple of weeks to allow for people to submit their entries, potentially people might form small teams. Maybe there could even be a prize!

This perfectly segways into my suggestion, I was going to suggest competitions each month, one major and one minor, could be a game (TBG, PBBG or otherwise) or software etc.

Edited by Script47
arcs -> segways into
  • Like 1
Link to comment
Share on other sites

I'll just go with...

Quote

Alan is clearly right here

Blockchain... pfft, I was writing blockchain code a *long* time ago - good for preventing rogue database admins from changing datasets. Nothing to do with currency.

Prizes.. yeah gods. Last time I won a prize here - I got a full copy of Alain's NWE engine - the worlds most friggin' convoluted and standards escaping product known to mankind. Still sitting in my "must-get-around-to-it" folder.

  • Like 2
Link to comment
Share on other sites

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...