Point Me Towards Resources, Please?

6cd5066fcf1f8254da4084055dc6c5b1
0
SolidSam 101 Mar 23, 2011 at 02:13

My buddies and I intend to learn Javascript and PHP for the development of a browser based MORPG. (No, I didn’t miss an M there.)

I am going through as many articles, FAQ’s, as I can. I’m using search function to look for pretty much any MMORPG reference and reading that, and I’m expecting to spend dozens of hours before I can get any type of idea of what I’m doing. But I’d like to cut down that time as much as I can.

My plan right now is to use some old computers (windows & macs) as servers and then focusing on playability and scalability vs. graphics and art. Once we have a solid base and are confident we can actually make money we will then expand. It’s a bit backwards but I’d rather find out very soon the exact speed, cost, data transfers, processing power needed, etc.

Any help on anything on the list below would be very, very, very helpful.

1 Best Resources for learning Javascript
2 Best Resources for learning PHP
3 Best Resources for Learning C++
4 Resources on tying in PHP with Javascript & C++
5 Resources for learning Database Management
6 Resources for learning Server Management
7 Resources for learning good game design.
8 Resources for learning Network systems. (How the bits break down, what a packet is.)
9 Resources for free or cheap textbooks / college level courses. (I like knowledge but don’t like academics)
10 Other Resources on topics I may of missed that help MORPG’s.
11 Open source programs and solutions for misc Game Design tasks. (Digital Synthesizers for sound effects, and um… other stuff I can’t think of because i’m a noob. All I have is GIMP, MAMP, etc.)

And if anyone can answer the incredibly noobish questions below I really appreciate it. I saved them for last because I have a feeling they’re going to make people wince.

Can you (legally and easily) implement C++ programming in a browser without a download? Is C++ client side capable?

Can you interface server-side database languages with client-side browser languages?

Are any of the listed languages going to be drastically changed anytime soon? Will me learning C++ be useless due to C+++ or something?

Also, if someone would have the kindness the give me an email address for further noob questions that would be incredibly appreciated.

Thanks,

12 Replies

Please log in or register to post a reply.

8596d335bd0a1964a74eff2dc1ee5b14
0
necroside 101 Mar 23, 2011 at 02:41

Google

Fd80f81596aa1cf809ceb1c2077e190b
0
rouncer 103 Mar 23, 2011 at 07:01

I can answer one question… :)
I still use c++, and it looks like itll be around for a while yet.

If I were to make a browser game, id use asp.net, because its what I learnt, its a nice complete package and you need nothing else but it, thats the main reason why I like it.
Theres a fair bit on google for it too, especially for first starting.

A8433b04cb41dd57113740b779f61acb
0
Reedbeta 167 Mar 23, 2011 at 07:11

C++ is not often used in web programming. You cannot use it on the client side (modulo some custom plugin type of thing). For the client-side, people typically use Flash or Silverlight if it has to be graphically rich, or Javascript and DHTML (Dynamic HTML - that is, using Javascript to modify HTML elements on a page) if it is not so graphically rich. (Although, with new HTML5 features, Javascript is getting more graphically capable - but most people don’t have this new stuff in their browser yet.)

For the server side, it is possible to use C++, but it is not often used. The most popular languages for the server side of a web app are PHP and ASP, although a variety of options exist. You would typically pair this with a database engine for storing data persistently; a very popular option is MySQL.

It is quite possible to interface server-side and client-side languages. The server side has complete control of the web page that is sent down to the browser, so you can write PHP code (for example) that generates some Javascript code that is sent down and executed in the browser. For instance, you can set some variables that the Javascript can read. For sending data back to the server, there are three methods: you can put data into the query string of a URL, or use an HTML form, or you can use AJAX (a more advanced method whose advantage is that it doesn’t require the client to refresh the page).

There are many good books on web programming; one is here. This has been well-reviewed and covers all the basic stuff you need to know to start building web apps. It doesn’t cover Flash or Silverlight, or anything specific to game design. But, it should keep you plenty busy for awhile, and you can get to the other stuff later. :)

6837d514b487de395be51432d9cdd078
0
TheNut 179 Mar 23, 2011 at 20:32

@SolidSam

Will me learning C++ be useless due to C+++

Haha… that made my day.

C++ is only going to be useful if you want to have a live game experience. PHP and HTTP for that matter is based on the Request / Response model. Meaning you ask a question, you get an answer. Things like pushing events down to the player cannot be done unless the player continuously asks the server for updates. Obviously this is not an ideal approach for live gaming. There is a way around it using the chunked protocol, but that is way out of your league right now and it’s also a less favourable approach compared to the new capabilities offered in HTML 5. HTML 5 brings a lot of new features to the table that will make building a browser based game worth your while. You have web sockets for multiplayer communication, you have the new Canvas for advanced 2D and 3D rendering (using WebGL), and you have offline storage capabilities. Everything is there for you, but it requires quite a bit of technical know-how. Flash and Silverlight are of course alternatives, but I personally don’t think they’ll survive the onslaught of HTML 5.

Just use Chrome or Firefox 4 and check out this site to wet your whistle.
@SolidSam

Once we have a solid base and are confident we can actually make money we will then expand.

  • Just make sure you have a job to pay the bills for the next couple years and you’ll be fine.
2b97deded6213469bcd87b65cce5d014
0
Mihail121 102 Mar 23, 2011 at 22:04

@SolidSam

My buddies and I intend to learn Javascript and PHP for the development of a browser based MORPG. (No, I didn’t miss an M there.)

Before you continue, Javascript is OK, especially with HTML5, but please take PHP out of the picture, it’s legacy technology with no future. Go for .NET or Java. PHP will make your life a living hell.

My plan right now is to use some old computers (windows & macs) as servers and then focusing on playability and scalability vs. graphics and art. Once we have a solid base and are confident we can actually make money we will then expand.

Fair enough.

Any help on anything on the list below would be very, very, very helpful. 1 Best Resources for learning Javascript
2 Best Resources for learning PHP
3 Best Resources for Learning C++

Oh boy.. Javascript is a scripting language and as such fairly straightforward to learn. I always check for resources (books) at O’Reilly: http://oreilly.com/javascript/, but any tutorial should the job really. You could also try to learn the relatively new language haXe which compiles to many other languages including JScript and C++. It’s probably now the time to start using IRC as well. Look at the Freenode channels, there is one for each important programming language/technology. I’m not sure which C++ book to recommend, but our valued member .oisyn will soon give you a suggestion or two.

Ask yourself the question if learning C++ is a good idea anyway. It’s a complex language and it will take a lot of time to master. The focus is now shifting to more… productive technologies like .NET which also tend to make the web developer’s job a bit simpler. I would thus recommend starting out with C#. You will not be bothered with the syntactic hell of C++ and you’ll have a huge standard library at your disposal.

5 Resources for learning Database Management

I can’t recommend anything good for practical database management. Try looking at O’Reilly for some possible guides on SQL.

6 Resources for learning Server Management

This requires practical know-how in my eyes and hardly any book will teach you all the quirks. It’s like having books for carpenters.

7 Resources for learning good game design.
8 Resources for learning Network systems. (How the bits break down, what a packet is.)
9 Resources for free or cheap textbooks / college level courses. (I like knowledge but don’t like academics)

Good game design is mastered, I can’t recommend many books and I’ve read many. And just don’t go over to GameDev.net asking these questions or they’ll be quick to recommend expensive junk written by kids. Get the book “Computer Networks” by Tannenbaum, it’s the Bible on networking and Tannenbaum has a very smooth didactic style.

11 Open source programs and solutions for misc Game Design tasks. (Digital Synthesizers for sound effects, and um… other stuff I can’t think of because i’m a noob. All I have is GIMP, MAMP, etc.)

Wait, wait… get some paper and a pen first. When you start needing the software, come back. You don’t need it now.

Can you (legally and easily) implement C++ programming in a browser without a download? Is C++ client side capable?

Legally yes, easily not at all. C++ is everything-capable, but there are simpler solutions. Listen to Reedbeta.

Can you interface server-side database languages with client-side browser languages?

Why would you want to do that??? It would be hard to manage security, but you can make a bridge if you really need it.

Are any of the listed languages going to be drastically changed anytime soon? Will me learning C++ be useless due to C+++ or something?

Well, yes, people are trying to get rid of PHP. Developing with it is quite hard. Other platforms as .NET and Java will let you be more productive while ignoring system-specific aspects (You don’t need to know about electronics to use your MP3-player). .NET for example has a powerful technology called LINQ that allows you to query pretty much every resource in the same way, no matter if ternary storage database or a single text file on a FAT32 system. Java’s web technologies also allow for easy aspect-oriented development.

C++ will be around a bit more for sure, but its days are also counted. It used to be good in the days where one needed both performance and some self-documentation in the code, but in today’s world of quad cores it’s almost useless. Compilers are also so advanced, they can just-in-time compile Python’s byte code to machine code with almost the same quality. Even embedded programming is moving towards .NET (Netduino) and Java (Arduino), because people want to be a lot more productive with a short learning curve. Take my advice and stay away from C++ unless your job depends on it.

Also, if someone would have the kindness the give me an email address for further noob questions that would be incredibly appreciated.

Will PM you.

8676d29610e6c98d6dd2d9c38528cd9c
0
alphadog 101 Mar 24, 2011 at 11:38

@SolidSam

1 Best Resources for learning Javascript
2 Best Resources for learning PHP

11 Open source programs and solutions for misc Game Design tasks. (Digital Synthesizers for sound effects, and um… other stuff I can’t think of because i’m a noob. All I have is GIMP, MAMP, etc.)

May I recommend the National Library Of Congress, Pocket Edition?
@SolidSam

spend dozens of hours before I can get any type of idea of what I’m doing

Your unit is off. Try “months” instead of “hours” for a list that includes multiple languages, systems knowledge, and also knowledge on sidebar items like music creation….

Anywho, check an older post of mine for approaching game development. You are totally over-reaching with trying to learn all that up front.

http://www.devmaster.net/forums/showpost.php?p=76828&postcount=6

Ffe16f497018b21d87cf101c9c49cfe0
0
touch_the_sky 103 Mar 24, 2011 at 17:01

Before you continue, Javascript is OK, especially with HTML5, but please take PHP out of the picture, it’s legacy technology with no future. Go for .NET or Java. PHP will make your life a living hell.

Haha!;) that made me lol quite hard, random bs is always good

Regarding the questions posted by the op - quite possibly you’ve got a looong way to go:
1) Server Side - if you’ve chosen PHP, but using raw PHP is not your goal you could consider using a framework. A full-stack, such as Symfony should serve you well. It may be a bit of a learning curve, but it will speed up your dev as compared to using raw PHP. You get an orm, generators, good debug toolbar (checking db queries, how long they take, tracing what exactly happened during request and more). Not to mention, by default you’ll be forced to some good practice, working in a well organised MVC pattern, some security issues will be sorted / instant-fixable by default, etc. You may spend some time on just learning it, but you’ll get a better chance of making something functional and maintainable. All docs, wiki, forums, plugins (sfGuard!), etc. you’ll find there: http://www.symfony-project.org/

A638aa42130293f319eda7fa4ba121f4
0
fireside 141 Mar 24, 2011 at 18:28

Haha! that made me lol quite hard, random bs is always good

I’ve got to agree there. Let’s try to keep things logical with this type of advice. It’s all right to give credit to .net, but not just say bs about it or PHP. PHP is growing faster than .net or java:

http://news.cnet.com/8301-13505_3-10453213-16.html

8676d29610e6c98d6dd2d9c38528cd9c
0
alphadog 101 Mar 24, 2011 at 18:29

@SolidSam

Can you (legally and easily) implement C++ programming in a browser without a download? Is C++ client side capable?

No. Not right now. Google tried Native Client a while back, but that as close as it ever got to browsers downloading and running C and C++ code natively.
@SolidSam

Can you interface server-side database languages with client-side browser languages?

Depends on what you mean by “interface”. Essentially, a server application is an “interface” between a client and a server.
@SolidSam

Are any of the listed languages going to be drastically changed anytime soon? Will me learning C++ be useless due to C+++ or something?

All language evolve, ebb and flow into and out of popularity, but don’t break too often. However, libraries and frameworks that sit over the language and always help the developer gain some amount of efficiency break much more often.

So, you may be safe with, for example, PHP, but Symphony (to grab touch_the_sky’s suggestion for no particular reason except it’s the post above mine) will likely eventually have breaking changes or go out of favor.

6cd5066fcf1f8254da4084055dc6c5b1
0
SolidSam 101 Mar 25, 2011 at 02:15

Thank you for all the responses.

It’s kind of funny that you guys are on different sides of php vs .net. I’ve skimmed articles and I haven’t made up my mind, but I’m leaning towards .net.

I really appreciate the detailed info and after research I’ll plan accordingly. I’ve got so many tabs up in my browser right now…

Necroside, Rouncer, Reedbeta, TheNut, Mihail121, Alphadog, Touch_the_sky, Fireside,

You guys make the world a better place.

For me at least.

8676d29610e6c98d6dd2d9c38528cd9c
0
alphadog 101 Mar 25, 2011 at 14:41

I’ll add one more voice to the “not-so-anti-PHP” side: there’s nothing wrong with PHP.

It’s really a c-like web scripting language with a big ecosystem of tools, associated modules and people. As a low-level scripting language, it is very versatile but can be quite a mess in inexperienced hands. Adding a layer like symfony constrains the space, adds focus and can lead to a functional website just like adding MVC2 to the C# language can.

87e614b8b888bb2c4485c1ac16d8c779
0
moe 101 Mar 25, 2011 at 14:43

It seams you have a lot to learn in different areas of webdesign. I would recommand not to start with any kind of game. Make some simple websites first to get the hang of it. Once you get to the level where you are actually capable of making a game you will have much more structure in your code and a game becomes more feasible. A MORPG will need quite some coordination and is very unlikely to work as a first project.

As for PHP vs .net it really doesn’t matter that much. You can make a game with either one. Keep in mind, if you use PHP you also need to install a server in order to develop anything. In this case I would recommand to install xampp as a package. This also means you need some basic knowledge in how to use this and thus it is one more thing to learn. Therefore, I would recommand to use .net so you can just download VS Express and get started right away. One more reason to use .net is that you have much more convenient debugger capabilities than you have with PHP. VS lets you even debugg JavaScript, at least to some extent.

Further more in PHP only newer versions allow for object oriented programming whereas .net has a proper object oriented desing by nature and allows you to use a modern software architecture without any problems at all. Once you get used to .net’s LINQ and Lambda expressions your source code will become much cleaner and more readable and therefore more maintainable. Also, you might run into trouble with versions down the road when using PHP. .Net is amazingly backwards compatible.

I personally favour .net. C# is certainly worth learning and if your game gets so advanced that a browser is no longer an option, you could switch to silverlight and still use C#.