Should I use Phaser 3 or Phaser 2/CE? [closed] - phaser-framework

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 3 years ago.
Improve this question
I am new to game development and I want to learn game dev. I have discovered the Phaser framework and I want to learn it.
Should I learn Phaser 3 or Phaser 2/CE? What is the difference?

Phaser 3 is the latest version of Phaser and succeeder of Phaser 2. When the official development of Phaser 2 ceased Photonstorm released Phaser into the hands of the community, this is Phaser CE (Community Edition). The community has done excellent work with continuing Phaser CE development. Because Phaser 3 is now available, there are only two reasons to use Phaser CE:
If you're already working with a Phaser 2/CE-project or maintaining one.
If you know Phaser 2/CE and have a tight deadline.
Otherwise, I highly recommend Phaser 3:
It's a complete rewrite of Phaser. It's modular and based on lessons learned from Phaser 2. You'll have a hard time to find anything superior with earlier versions.
It's the future. The community is already migrating to it, so it will be much easier to get answers from the community. It will continue to evolve with the development of JavaScript engines and browsers. You can expect bugs to be addressed promptly. Phaser CE on the other hand, has bugfixes submitted by the community. (Phaser CE isn't LTS as stated in another answer).
New features. Don't expect Phaser CE to any more new features. Phaser 3 already have Facebook Instant games support and have a roadmap of upcoming features. It has a custom render that you can expect to be updated frequently.
The docs are continuously improving. For a long time they haven't been as good as those for Phaser 2/CE but they're getting there. There is a massive example database hosted at phaser.io/examples/v3. Phaser 3 is not harder to learn or use than Phaser 2/CE.
In general: If someone take the time to rewrite a framework it's probably for a good reason. If Phaser 3 failed to replace Phaser 2/CE it would be the death of Phaser, but no signs of that so far. If you want a framework that will also be a viable choice in the future, you should really go for Phaser 3.

You have a point with starting with the newest version, and I tried doing that, but there is very little external reference available for it. The documentation is not readable at all, and there are few examples.
In this stupid little card game I've been working on for a couple weeks, I'm using 2ce. Between the docs and examples, I've been able to figure out most everything I need to do.
I tried 3. Between the relatively sparse examples and the unreadable docs, it was highly unusable.
[Jan 2021 edit] In 2020 I had an opportunity to work on another li'l game project and chose Phaser 3. In the interim couple of years, the documentation has been filled out and the community has turned over quite a bit.
The above text was true at the time of that post. Currently, Phaser 3 ecosystem has matured quite a bit.

Consider CE as being like a LTS (long-term support) version, not too much changes in it, mostly fixes and small updates, but it’s stable as hell and well covered with docs / tutorials / examples
But there is a special phaser faq that says to use Phaser 3 if you are new to the framework because you will have to learn everything from Phaser 3 if you start with Phaser 2 (CE)

Related

What is the naming convention to migrate a Phaser 2/CE project to Phaser 3?

I have worked on some Phaser projects when it was called Phaser, and want to migrate some of them to Phaser 3
As the main project is called phaser and not Phaser 3 and that my projects are named phaser-something but contains Phaser CE build, is it better to migrate them to phaser3-something or I just have to call them phaser-ce-something first then create a Phaser 3 repo specifically for the new version of Phaser?
I think this might be a pretty large, and potentially very opinion-based, question, as it sort of depends on your own style.
Generally speaking, if you're not going to have multiple versions of the same game, that differ in the version of Phaser used (and the necessary code changes, which there would be a lot), then there shouldn't really be any reason to end up with two repos for your code. Two repos, like what Phaser has done for version 2 CE and version 3, is generally if you need to continue to support both versions of Phaser.
A few reasons you might want to do this:
Your project includes demos/starter templates that you want to share that are specific to Phaser releases. Biased example is my starter templates repo for Phaser. Code that ties to a tutorial would be another case.
You've created a plugin that you want Phaser 2 CE and Phaser 3 users to be able to use. Code for each would be different, and specific to the version of Phaser being used.
If you're just looking to upgrade your projects from Phaser 2 CE to Phaser 3 you can either:
Create a new branch in your existing repo to work in, and then merge into master once done.
Create a new repo to work in and then mark the old one as deprecated, or just delete it, once done.
This really just depends upon what you want to do, and whether you want the old code/project. So:
As the main project is called phaser and not phaser 3 and that my projects are named phaser-something but contains phaser ce build [...]
Do whatever makes sense to you. Again, unless you're planning on keeping around both projects and continuing to support them, it doesn't matter.
is it better to migrate them to phaser3-something or I just have to call them phaser-ce-something first then create a phaser 3 repo specifically for the new version of phaser ?
If you do want to keep both your projects around, then this makes sense. But, I might suggest calling it Phaser 2 CE, and not just Phaser CE; it's possible that there might be a Phaser 3 CE in a few years.
Might not matter here, but keep in mind that if anyone does have a local clone, or there's other existing links, they will be broken when you rename a repo.
Having worked with Phaser for a number of years, 2/2 CE/3, my recommendation would be to keep your repo's name as-is and make a branch. I personally find it easier to start with a new files specific to Phaser 3 and then port over code, instead of upgrading in-place. This allows you to immediately get a working (albeit empty) Phaser 3 game up and running, and then add to it to make it complete.
The alternative would be to start updating references to Phaser 3 and fix what breaks, which is also fine, but enough of the framework changed that you'd probably have to touch every significant line of code.
Hope that helps.

Atom built on Node.js isn't that a recipe for performance flaw? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 6 years ago.
Improve this question
Note: This is not an attempt to bash Atom in any way. These are the questions I had and it's overall about the choice of Tech Web instead of a Native one.
This is me trying to understand the goal of it, and if it's a solid tool to use in general.
( I have Atom, and I use it sometimes - test driving - )
Why wouldn't they make it native which would be faster and solid?
Is Atom focused on entry level Web Developers? Is it supposed to be cool instead of functional?
Is it a reliable and solid tool for "real" / heavey programming (with languages like C, C++, Java, etc)?
Yes it's at its begining but why would they go with web tech (node.js) to start a product that would turn out to be slower than with native tech?
It can't even handle big files!
Why is Github advertising Atom (https://www.youtube.com/watch?v=Y7aEiVwBAdk) as a tool for programming machines (rockets and low-level programming) with Javascript!!!
And again: Is it supposed to be cool instead of functional?
making it native means you need to compile it to use it. Since one of the goals of Atom is to make a hackable (to the core) code editor, making it in javascript, css, and html allows people to use it \ changing it without compiling any code which allows a quicker flow. Since it's more of a code editor+ than an IDE, basic functionality isn't harmed so much by the performance difference.
no. It's meant for real engineers. the kind that wants to mess with the code editor they work with and tweak it to their needs. This approach allows you to create extensions a lot easier than standard IDEs and code editors.
yup. real programmers usually do real programming. It doesn't matter if you use notepad or whatever. Actually, a lot of programmers prefer the simplest text editors (and some don't). One of the reasons programmers give for that is that it keeps them sharp on all the little things that IDEs usually do for you.
Node is an exciting JavaScript language for web development that has been growing in popularity in recent years. It started out for small development projects and has since penetrated the enterprise and can be seen in large companies like Microsoft, eBay, LinkedIn, Yahoo, WalMart, Uber, Oracle, and several more. Most of them actually improved their performances since the move. Just a few examples [taken from the MEAN Machine book by Chris Sevilleja and Holly Lloyd]:
Yahoo started experimenting with Node back in 2010. At first they just used it for small things like file uploads, and now they use Node to handle nearly 2 million requests per minute. They have noted increases in speed and a simpler development process.
LinkedIn began developing the server side of their mobile app entirely with Node. They were previously using Ruby, but since the switch they have seen huge increases in performance, ranging from 2 to 10 times faster.
PayPal has recently jumped onboard and began migrating some of their Java code to Node. They began experimenting with just their Account Overview page, but once they saw a 35% speed increase and half the amount of time spent on development, they started moving all sites to Node.js.
It's just a commercial. It's suppose to pay tribute to old technology commericals like the AOL commercial from 1999 https://www.youtube.com/watch?v=1npzZu83AfU
It's supposed to be both. For a more detailed answer, read the previous bullet which answered the question the first time you asked it ;-).

Is there a stable Programming Language for Web Programming?

A renowned PHP user once said: There will be a relaunch in 2 years, anyway.
Those times are gone. Web applications that are older than 5 years are common. With the original developer(s) gone.
The release cycles of the operation system, programming language, and framework are getting in the way of doing real work, if you don't have a big staff.
Is there any way to develop something that doesn't need constant porting to the next level, without the fear of losing support and backing in a community? For people who want to stay in programming instead of climbing the corporate ladder and leaving the problems to the next "generation"?
My company codes almost exclusively in C#, however we have ColdFusion 5 apps still humming along written back in 2001 or so. Theres no need to port them.
If it ain't broke, dont fix it.
Other than security flaws (which are usually handled by an OS/Server Patch, so they dont need code changes), theres no need to change an app just because a new version of the language has come out.
If I'm not mistaken, ColdFusion has had at least 2 new releases since we stopped using it for new code. but that hasn't affected our ColdFusion sites one bit.
Write CGI programs in FORTRAN 77. Should be pretty stable.
Firstly, it is possible to overstate the difficulty in maintaining web applications. In many cases, the changes to a language or platform are expansionary in nature rather than destructive. .NET, python, etc code from several years ago will still run, but new options are being added to make these these tools more powerful for future applications. The case where massive changes occur tends to be on the first or second iteration of a language, e.g. Rails 1 to Rails 2.
Secondly, the still active development of web programming is something to be thankful for.It means that this is a part of the industry that will remain productive and exciting for years to come.
Traditional CGI is stable. It's not sexy, but if your OS continues to be able to run the same binaries or scripts, it's still going to work.
The only programming frameworks that stay stable are those that have been abandoned. A framework that stood still long enough would have no support for, say, AJAX or JSON or even XML.
You're not going to find what you're asking for. The best you can hope for is a mature framework with good support like ASP.net or JSP. And, as #Neil N said, don't keep upgrading unless there's a compelling business need.
The first web programming I ever did was writing Apache modules in C which communicated with a dBase database. I'm fairly sure that code would still run today (if the company I wrote it for still existed).
I do most of my current web-related programming in Perl, which is very stable and has an excellent track record for backwards compatibility. Most, if not all, code written for Perl 4 (released 21 March, 1991) should still run on the latest stable Perl (5.10) - although you might want to update it anyhow to take advantage of the last 18 years of improvements in both software development techniques and language features.
Consider the shearing layers. I've previously worked in large aerospace companies where the same Fortran back-end code and databases have had their front-ends evolve from the paper tape era through mainframe, client server and onto Intranet web sites.
On the outside, you have will typically have CSS and XHTML templates which can be changed to re-skin an application. These change quite rapidly, in large organisations as upper management seems to decide the bike shed should be a different colour every few weeks.
Typically you then have some logic to combine the templates with data from the back-end, and forward user actions to the back-end. This shouldn't change that rapidly, but translate the presentation to calls into the back-end. Expect to refresh this every few years, and rewrite it once a decade. We used Java for this, starting in the late 1990s. Some parts get changed faster than others, but it's not a big issue.
The back-end is usually stable ( some of the aerodynamics code dated from the 1970s; the laws of physics don't change that often ), and will outlast the web UI, as it has all the other UI paradigms. Fortran is forever.
Write your own web server in C then you don't have to worry about a web programming language.
(No, that's not a serious answer)
Have you seriously looked at what TDD, CI, pair-programming, and a solid, rapid development framework (basicaly Django or Rails) can offer to you as a developer vis-a-vis the way you write and design code? There are some really massive benefits that all of those pieces offer to the development process that make it almost a joy to be a programmer again. There are downsides, of course, but the upsides are all in support of the happiness and ease of development for the engineer, which leads to more productivity. In my book, that's a slam dunk win. And the result of my productivity and happiness, has been solid products and great engineering.
YMMV, but if you are having the serious thoughts that you are (and I take them very seriously), I think it's worth you investigating what those tools can offer. By taking the good and leaving the bad from the agile religion plus some of the things I listed above, I've returned to find the joy in programming again this last year, after a good 5 years of a downhill slide of my happiness with this career. It's about finding what works for you. I can only help and lead the way by showing you what worked for me. I'd be more than happy to discuss at length if you want to talk offline, I think this is a really important topic...it lead me to consider a career change many times.
Java Servlets and JSPs have been in use for a decade or so, and they still work the same way like they did in '99. But honestly, can you imagine something uglier than a '90s web application without any rework done since?
The Python web framework web2py promises backward compatibility:
Always backward compatible. We have
not broken backward compatibility
since version 1.0 in 2007, and we
pledge not to break it in the future.
And supports Python versions from 2.4 to 2.7
EDIT: Updated an important project 2 times and every time there was a problem. Well, …
EDIT 2: Needs Python 2.6 to 2.7 now. No support for Python 3.

How did you benefit from Resharper [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
How much code kludge could you remove using the resharper 4?
I want to hear more about benefits on 10k+ codebases
Resharper is a tool. Continuous refactoring is an attitude. If you've got the attitude, then IMO resharper is the best tool you can get. The tool by itself does not really remove any kludge.
The size of the codebase only makes these tools more important. With reasonably large codebases you have to trust the tool. I use all og jetbrains' tools and think they're marvellous.
I still think continuous refactoring is best introduced into a project by getting one or more people who know all the tricks into your team(s).
And yes. I worked on a stuck project for 7 months doing only refactoring, using resharper. I basically refactored almost every single line of code. Maybe it should have been rewritten from scratch, but that was not an option. Be sure to introduce testing as you refactor.
It's freaking awesome. I'm currently working on releases for the large code base we're working on here and to merge a change across two branches is utterly awesome.
CTRL + T => Means I can find a type in no time at all. To go to SmartcardProductIssueService is just CTRL+T, SPIS, ENTER and the file is opened. SHIFT+ALT+L and it's selected in the SolutionExplorer, then I just right click to view the history and I can start working on the merge.
Refactoring is nice and the "greyed out" effect for unused code has helped me spot a few bugs.
If you want to see some of the refactoring joy check out the jedi refactoring vid.
Resharper offers so many benifits in terms of developer productivity. It also improves better design by suggesting many improvements to the code on the fly. i have been encouraging people in my team to use all the shortcuts from Resharper and try and get off the habit of using mouse. Its not to say that you shouldn't be using mouse at all. But Resharper offers so many rich features that as a developer you can almost forget to make use of mouse.
Here is a small blog post I wrote about how to make use of resharper to clean code
http://nileshgule.blogspot.com/2010/10/refactoring-clean-code-using-resharper.html(This does require few mouse clicks here and there :))
There are various addins for resharper like Stylecop, NUnit etc which help other tools integrate with resharper and offer better user (developer) experience.
Hope this helps.

Experiences with OpenLaszlo? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 6 years ago.
Improve this question
In a related question, I asked about Web Development. I came across something called OpenLaszlo yesterday and thought it looked interesting for doing some website development. The site has a bunch of good information on it and they've got some nice tutorials and such, but being a total novice (as far as web development goes), I'm wondering whether anyone here would recommend this. As I stated in my other question, this is a new world for me and there are a lot of directions I could go. Can you compare/contrast this and other web development you've done? Obviously, this is somewhat subjective, but I haven't heard much about it on SO and I'm hoping to get some opinions on this.
I worked on a website for about a year in which the entire UI was developed in Laszlo. I've also developed AJAX applications using JS frameworks such as JQuery, Prototype and Scriptaculous.
In my experience, the total effort required is considerably less when using Laszlo, and the class-based object model helps to keep your code better organised than when using JS frameworks. My only complaints about Laszlo were that:
It "breaks the browser" in terms of support for the back/forward/refresh buttons. This problem also exists with AJAX, but most JS libraries seem to have found a workaround.
No support for internationalization, though none of the JS libraries are any better in my experience
Relatively small user base/community compared to competitors such as GWT, JQuery, etc.
All in all, I thought OpenLaszlo was a pretty good solution for creating rich web-based user interfaces, and has a number of very novel features, e.g. ability to deploy on multiple runtimes (Flash, DHTML, etc.) without requiring any code changes.
Also, I should mention that I haven't used it for almost a year, so it's likely that some progress has been made in recent times on the issues I mentioned above.
Update
5 years since I posted this answer, things have changed considerably. In case anyone is in any doubt, don't use Laszlo, the project is completely moribund.
I used openLaszlo to develop a few blog widgets for some friends of mine (about a year ago) and it was easy enough to get something basic working and it looked OK. But if I had to do it again, I would probably use FLEX I think you can make a more polished looking application in a lot less time using Flex than with Laszlo
You definitely can write a flash app quickly with OpenLaszlo. There are a lot of similarities to developing for Silverlight.
One OpenLaszlo lameness is that it uses a lame variation of javascript similar to ActionScript. Takes a little getting used to, if you are used to the latest features.
Also, the final flash file that you end up with is very large (file size) compared to what you can do with other tools.
One benefit of OpenLaszlo is the possibility of DHTML output. But for me the mix of XML and JavaScript in the same source file was somewhat confusing.

Resources