Multiplayer game development in flash - actionscript-3

Before you say that it is a repost of this question- Alternatives to Flash Media Server for multiplayer game development, it is slightly different as I am asking for pros and cons.
I want to know which server I should use for my specific flash game.
I am making a game called mathlympics. The idea is that the player has to answer simple arithmetic questions. The faster he answers the questions, the faster his athlete runs. I am making the game 3d using away3d engine for flash. A similar 2d example can be seen here
I want to make my game multiplayer, so that the different players could play against each other live at the same time.
Now I would like to know the pros and cons of the different engines.
red5
player.io
amfPHP (suggested on this question - AS3:Multiplayer Game by using AS3 with PHP?)
spogg
union
I do not which one is best. What are the pros and cons of each. Which one is easiest to use and which one suits my game best? If there are any other engines out there which might me more relevant to me, then please free to suggest?

Check out my recent post to the question you referenced above. It was added a few minutes ago. It might have some good insights..
AS3:Multiplayer Game by using AS3 with PHP?

Related

Game dev engines [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
Sorry about my question, I know that this is a stupid one. I want to begin in game dev, where should I start? Should I start with libGDX, Love2D or with Monogame. I know how to program in this languages (JAVA, LUA and C #). I just wnat an opinion from those who have more expirience than I. Please, help me. Thank you
I'm afraid the answer to questions like these is "It depends."
There are several factors you'll want to consider:
Do I know the programming language?
Does it support the platforms I want to put my game on?
How complex is my game?
How big/present is the community?
In full disclaimer, my experience has primarily been with libGDX and Unity, with a smattering of SFML.
Programming Language
Learning to create games becomes a lot easier if you already know how to program, but only if you know the language you're writing the game in. For example, I'm most knowledgeable with Java, and while C# is similar in many regards, I still lose a lot of time in Unity to understanding the quirks of the language.
If you know Java, go libGDX
If you know C#/.NET, go Monogame
If you don't know how to program, Lua is probably the easiest to pick up (although you might also consider a tool like GameMaker).
Platforms
Honestly, this is becoming less and less of an issue as more interpreted languages are supported on more platforms. It is worth noting that some frameworks make it easier to be cross-platform than others. For example, libGDX provides a tool which generates all the Android/iOS/HTML template code for you when you create your project.
Targeting all PCs: I recommend libGDX. MonoGame and LOVE also provide cross-platform support, but in my limited experience, Java tends to provide better cross-platform support as a language- it's been doing it for a long time.
Console Platforms: Of the three, I recommend MonoGame. To my knowledge neither libGDX nor LOVE support consoles.
Web Platforms: I recommend libGDX, as you can export your game as a web app powered by GWT.
Complexity
The more complex your game is (in terms of computation, graphics, physics, etc.), the more sophisticated a game engine you require. Conversely, the simpler your game, the more those shiny game engine features are going to get in the way. Another hint here is to look at what published indie game developers have used (Bastion is a good game that was written in MonoGame, so you know it works).
Complex: Go with libGDX or MonoGame. These languages are typically more performant than Lua.
Not Complex: If you're just learning to program, then LOVE might be a good place to learn the basics, although you'll still probably want to move up to a more robust game engine.
Community
Especially when you're getting started, community is important. You need a bunch of friendly people who can help answer your questions or look at your buggy code with you. Rather than try to find a way to measure involvement, let me give you an example of some things to look for:
IRC Chat: An active IRC imho is an excellent way of knowing that there is a helpful community.
Forums: If you look at the forums and see that the last post was in 2014, that's a pretty good indicator that the community is small or dead.
Game Galleries: This gives you an idea of how many people are using the library, and what they were able to do.
StackOverflow Activity: The more questions you see on SO around that game engine, the more people are likely using it, which means the larger community it is likely to have.
Hopefully this helps- there are dozens of other game engines out there (many of which might fit your needs better than these three), but we'll need more details to go on in order to give a good recommendation.

What is the limitation of Actionscript 2.0?

I would like to know if you have ideas about the LIMITATION of AS2.0? I've done some research about the difference of AS2.0 and AS3.0 but I need to have a clear understanding about the limitation of AS2.0 in order for me to confirm that AS3.0 is superior than its predecessor before I continue my study in AS3.0. Thank you.
I used to develop games in ActionScript 2. I was very resistant to ActionScript 3 when it came out - I didn't even touch it until about 2 years after it was released.
When I finally did make the effort to learn it, I became frustrated with myself for not learning it sooner. It was so much cleaner and more powerful. I was able to create actual libraries for future projects as I worked, and download libraries for things that I didn't have the brain to develop myself, like physics.
It is extremely beneficial for you to learn ActionScript 3 - first off, lets look at what's happening with the two:
AS2 is being removed from future releases of Flash.
AS3 is still being worked on. A noteworthy example of this is the recently developed Stage3D API, which grants extremely efficient rendering for Flash.
Here are some core advantages of AS3 vs AS2:
It's object oriented. This is almost mandatory when working with large applications or games.
Because of this, there are hundreds of libraries available for AS3 that cover things like physics, particles, animation, MVC concepts, rendering improvements, etc.
Much nicer to use.
Easier to extend your knowledge once you get a grasp of the basics of object oriented programming.
It performs a lot better.
Easier to recycle code for future projects.
Learning ActionScript 3 will greatly improve your chances of being able to pick up additional popular languages like C#, Java, PHP and so on.
Much easier to find support - take a look at the quality of answers on Stack Overflow between AS2 and AS3.
You can create AIR applications, which can be built for iOS and Android devices.
The only reason you need to care about is that it's an obsolete language. Don't waste your time with AS2. There's a quantum leap from AS2 to AS3, not only in terms of what you can do, but in terms of the quality of the language itself.
As someone who made the transition in 2007 to AS3 (after using AS2 since 2000) here are the main advantages:
Speed. When it was released, AS3 was 10 times faster than AS2. Today considering all the new features Adobe is introducing like Native Extensions, it's a lot faster than that.
Publishing to mobile or dekstop apps. Face it: browser Flash is slowly dying.
New features such as Stage3d or StageVideo.
Learning AS3 will make you a better coder
AS2 is no longer supported in Flash Professional, so if Flash Pro is part of your design cycle or you ever want it to be, that's obviously a big limitation. (Adobe has said that the Flash Player will continue to support AS2, though, so if you don't use Flash Pro to develop you can still get by).
In terms of functions/behaviors that exist in AS3 but not AS2, Stage3D is one. I'll leave it to someone else to make a list, but basically, AS3 is the better (and definitely faster) choice for any situation I can think of.

Resources for Learning Pure AS3

Similar question: Best Resources for Learning AS3
I am interested in learning AS3 and have downloaded FlashDevelop and played around with it a bit, learning some of the fundamentals. However, when I attempt to start on any relatively simple project (eg. a multipage document) I get completely lost and have no idea how I should build my project. Are there any resources, tutorials, 'cookbooks' etc. that teach actionscript 3 through example projects. I keep finding books that explain the fundamentals of the actionscript syntax or tutorials that explain how to use actionscript to complete a task in the Flash IDE but this is not what I am after.
Where can I learn how to create projects in pure AS3 without the aid of the Flash IDE or Flex? I don't mind if I have to create assets in the Flash IDE that I then compile to .swf or .swc for use in my actionscript code.
My advice is: learn Flex focusing strongly on MXML, or learn Haxe.
AS3 is verbous, unexpressive and unproductive compared to those two.
edit: you can check out the AS3 cookbook. nonetheless, after rereading your post, I've come to understand, that your problem is not learning AS3, but you're rather having design problems. Am I correct?
edit2: "Is it uncommon for people to work in pure AS3?"
I wouldn't say, it's uncommon. I'd say it's even common, i.e. a common mistake. Why? It's inefficient. I think, I can tell, because I did that a lot.
the main role of pure AS3 is to create libraries and frameworks. To create actual apps, it is really the hardest way one can choose. In all handmade apps, GUI turns out to be the most time consuming part. Laying out GUI using code is a nightmare.
Now MXML is really great for normal GUIs (a graphical editor is even better of course). And the Flash IDE is great for creating funky animated things. The best thing you can do with AS3 is take ASWing and their GUI-editor. As nice as ASWing is, its ugly and a pain in the arse to skin. But, you can.
The advantage of Haxe is, that its a more powerful language than AS3. You effectively write less code, and its signifficantly more typesafe, so you run into less errors and spend less time debugging. Also, another advantage is, that you can use the same language for creating a serverside backend for the app and pass objects transparently to it, using Haxe remoting, which cuts the transport layer down to nothing. All validation and business logic can run both on client or server. Plus it's open source and it evolves very fast. AS3 was a great thing when it came, but it has stalled eversince, which is nearly 4 years now.
So while there's nothing wrong using pure AS3 per se, you always have to compare it to the alternatives. Pure AS3 is inefficient and for geeks. Flex is highly efficient. Haxe is more efficient than AS3, and is for the really cool geeks.
Have you checked out Essential ActionScript 3.0 by Colin Moock that was in the other question? here is a preview on google books

questions about game development from web developper's point of view

i've been making web app's and working with various server side language like php, ruby, perl for a while now. I've always been curious about game development, it's actually what I set out to do but I ended up in web development. I am trying to transition in to GD, but I cannot help see games from a web development POV.
GD = Game Development
WD = Web Development
Technical Questions.
How do you design UI in games? in WD you have CSS, and need minimal graphics to create a quick menu. are there similar tools or concepts in GD ?
How do you deal with storing data ? Do you use flat text files? Or is there something like MySQL or sqlite that you use to store information about objects, users, and etc ?
What game engines is commonly used ? Are there any that use scripting languages ? I only know VB and basic understanding of C.
With the proliferation of Iphone and Android, is J2ME being phased out for mobile phones ?
open 3D web is coming. What is your thoughts on having 3d applications running natively from your browser ?
What tools make it easy for creating 3D objects, levels, game environment, and animating characters and so on ?
Where can I find out more about how server/client, client/client, and MMORPG networking works ?
Where can I get or find generic or commonly used game flows ? for multiplayer ?
How do you deal with physics? Is there freely available algorithm or library that you can use ?
How are real time cutscenes made in games ?
Market Questions.
Which market should you enter? Mobile, iphone, wii, PSP, DS, android , ps3, PC etc.
Shouldn't you always enter mobile market, as it is easy to make small games on your own yet sell a lot ? Are there any resources where i can find more about each markets ?
What is your thought on Steam content distribution ? Is it the distribution model of the future ? Whats wrong with the traditional publisher/distributor model ? How does the traditional model work exactly ?
How big is the web games market? ex) Flash games.
How is game development different from any other software development or web development ?
I have a lot more....but those are the ones that I have been thinking about lately.
Thank you very much for reading !
UI Development
Depends on the game- is it animated, or a board-style game? Generally, UI assets are created as images, sprites, or storyboards.
Data
Again, depends on the game type. Realtime games need FAST access, so you want to store your data in a local database and cache it as much as possible. Local file-based databases tend to be the norm, either custom or off-the-shelf, such as SQLLite.
Engines
There are tons of engines out there for 3D, board, etc. Popcap has made their C++ game engine open source. Others include Unity, Ogre3D...
J2ME
I wouldn't target this platform for games.
Don't know much about "Open 3D Web" but it sounds very browser-dependent, so mileage may vary across browsers.
You can play with 3D with Google Sketchup and Caligari Truespace. Truespace was bought by Microsoft and made free.
Again, tons of engines out there for networking. Example: Microsoft's XNA framework has some networking bits you can leverage.
Not sure what you mean there.
There are physics engines built into some of the gaming engines I've mentioned, and external ones you can use.
Once upon a time, realtime custscenes were pre-rendered with 3D Studio Max or Maya. These days in-game rendering is often good enough for cutscenes: look at the latest Halo 3:ODST game. All cutscenes use the in-game engine.
Market
I looked into game development earlier this year. Casual games look to me like a growth industry- high volume, relatively low development cost. Big Fish Games for the PC is a good example there- they publish a few titles and resell most.
I think mobile game development is a huge potential market but the barriers to entry are high because it will be a crowded space. iPhone games are the 800lb gorilla but Android is coming up. PSP and others have a limited audience and are notoriously difficult.
The most important thing I learned in my research is that game development is a labor of love. It's hugely multi-disciplinary: you need programming, art, concept, production. It's more like making a movie than anything else. It's also rough to make a profit because of all that overhead. If you want to get into it, I recommend joining a game developer to learn the business. Once you have experience you can carry it forward to larger gigs at larger publishers. Eventually you can get to work on a major AAA title, after which you can really write your own ticket.
I'll stick to answering the technical questions:
1 - UIs are usually completely bespoke, with nothing resembling a standard in the same way that HTML/CSS is a web development standard. Some people use ScaleForm which is based on Flash but that is by no means common.
2 - Data is often stored in flat files - rarely text, more commonly binary. Again, these are almost always completely bespoke formats. Sometimes they are aggregated into archive files which use the zip format or something similar however. Occasionally, some programs might use sqlite, and online games often use SQL databases.
3 -There are many game engines used, although the definition of 'common' is vague. There are well-known ones like the Unreal or Source engines, down to lesser known ones like Panda3D or Torque. Some of these are heavily focused on 3D and leave much of the rest of the functionality to other packages (or the game developer themselves). Most are able to be used with scripting languages, or come with one built-in. (eg. UnrealScript).
4 - J2ME - couldn't say, that's not the sector I work in.
5 - 3D web will be interesting when it's ready, but cutting edge games currently require gigabytes of client-side data. Running the application in the browser doesn't get around that download, so it's not a great benefit. Nor is it likely to be as high performing as a dedicated 3D game renderer for quite some time. So while it opens many doors, it doesn't significantly change the state of play for gaming just yet.
6 - 3D art assets are usually made with 3D Studio Max or Maya, although there are several other related tools.
7 - MMORPG networking firstly requires understanding of basic networking (ie. strip away all the HTTP fluff and get right down to the socket level). Start with Beej, work up. From there, you're best off reading talks given at conferences and reading the Massively Multiplayer Game Development books, coupling that with anything you can find on traditional game networking. 2 good starting points are the Source Multiplayer Networking docs, and Gaffer's Networking for Games Programmers. Don't expect to understand everything the first time you read it, either. And bear in mind this is a field with ongoing research and the problems are far from solved yet. And that it's also a field where "if you have to ask, you can't do it yet". Emphasis on yet.
8 - I don't know what you mean by game flow - it's not a term I've heard used before.
9 - There are several physics libraries available, including Havok, ODE, Bullet, PhysX, Box2D, etc. Some are free, some are not. You can also write your own physics for simple games, as it's not all that hard, and indeed that is what everybody did until relatively recently.
10 - Real time cutscenes are typically either pre-animated in something like 3D Studio Max, or scripted to run within the game engine.
It depends very much on the platform you are developing for. some game engines, or platforms, have built in platform specific means of creating UI systems. An example is developing for the 360 where there is a proprietary UI system provided with the SDK tools.
However, systems like these tie you to a particular platform and this can be undesirable.
Another alternative is cross platform libraries like Scaleform, which provide game-side libraries for displaying UI elements, and a common way of editing and creating UI systems across different platforms.
The complexity of UIs in videogames varies wildly. Look at something like Peggle, compared to something like Codemaster's Dirt or EA's Dead Space. Each system is therefore implemented differently.
Some use 3D packages and the standard game engine to animate and render UIs. Others implement Flash. Others roll their own custom solutions. There's no easy choice or a standard like CSS I'm afraid!
Hope this helps,
-Tom

Is there a decent open-source gaming console [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
I've got a young nephew who aspires to grow up to be a game programmer and i'd like to introduce him to the world of open-source as well as get him a sweet gift.
Anything like that out there?
Well, this is a tricky question because we don't know the level your nephew is at, nevermind the fact that it's difficult to produce a very nice showy game without a lot more work than a beginner might put forth.
X Game Station
Nevertheless, André LaMothe's X Game Station is meant to be exactly the system you're asking for - a beginner's guide and system on how to develop complex programs with interactive elements and gameplay on resource limited hardware. Which is pretty much what a game designer is called on to do.
GP32
The GP32 was also meant to fill this gap, but with a much more powerful processor. The successor was never released, and the company went bankrupt shortly after, but you may still be able to find one on ebay or within the communities that developed around the original machine.
Google Android
You might also consider looking toward the Google Android platform. Cell phone gaming is now and will be one of the biggest platforms in the future. The android isn't set up perfectly for gaming, but it's a good first approximation, isn't horribly expensive and includes a robust development toolset for a high-end mobile processor. Several big name game development companies have already pledged support for this platform, so it will also look good on a resume.
But a cheap computer and a VGA graphics book is surprisingly fun as a kid...
-Adam
There are a number of Open Source platforms out their for game development, if you go to here there are a large number of game engines and development platforms. For a beginner with little programming experience I would suggest a game engine like Game Maker or RPG Maker, which are drag and drop game engines. Both of these are free open source game engines. The other problem with these two game engines is that they are limited to 2D games only, even though Game Maker allows you to make and FPS that is like Doom style graphics.
For a more intermediate or beginning programmer I would honestly suggest Torque, which has both a 2D and 3D game engine. This engine is licensed as open source, but you still have to pay for the compiled version from their site. I have had much success with Torque in the past, especially Torque Game Builder (2D Game Engine). It is very simple to pickup and begin making good looking/functional games. In fact, a number of XBOX live games have been built using Torque game engines, like Marble Blast.
Another open source game engine I have heard good things about, but have not had a chance to try, is Multiverse. Multiverse is actually aimed at MMOG creation. The nice thing about Multiverse is that it provides for the creation of a 3D game environment, but also allows for the integration of Flash content into the game world.
For a more advanced programmer I would suggest looking into the SDL, OpenGL, and OpenAL. These are not game engines but graphics and sound libraries for game programmers. These are completely open source and are free to use. Most game technologies will have some implementation of one or all of these libraries in their software.
Even though XNA is not open source, it is also a good place to start for more advanced programmers. Not only does it allow for the creation of XBOX games, but you can also develop for the PC and Zune also.
Another thing you may want to suggest to your nephew is to modify existing games he owns. Most PC games and many console games allow for game modification of some form or another (level design, rescripting, etc). Some of the more popular game engines that I have seen mods for are the Source Engine and Unreal Engine. There are a number of tutorials at MODDB and 3DBuzz (which also has great tutorials on other aspects of game programming and design).
In addition to what I have listed, I have also heard good things about Ogre3D and Havok (a physics engine used in many many games). He can also go to such sites as IGDA, Gamasutra, GameDev,Game Career Guie, 3D Buzz for additional information on game development.
Hope this information helps.
I saw a question earlier about programming on a Nintendo DS. That sounds like it might be what you're looking for.
Also, I recently read about the BUG which looks like a really cool platform for building any number of handheld devices.
You might be interested in the XGameStation. It's a hardware console designed to teach programming a game console. It was created by Andre LaMothe who has written several books on game programming.
http://devmaster.net/devdb/engines/sylphis-3d#general-overview looks pretty nice, c/c++ oriented, GPL license, and Free.
I'd third the Nintendo DS recommendation - grab a R4 "homebrew" cartridge and you're pretty much set.
Another idea is one of the independent handhelds - something like the GP32, though there's certainly newer devices on the market.
I believe this is somewhat like Basketball, start from close to the basket and work your way out and you'll be hitting 3's with practice.
In my opinion, game programming is 3pt, without learning to shoot the basketball properly, you will probably cheat and start slinging it or just chucking the ball at the backboard hoping it's going to go in.
If you have a youngster without the ability to shoot a mid-range basket properly, do you think he will be able to motivate himself to keep trying, rather then trying something closer to the goal and working himself outside when he is confident?
If your nephew is serious about learning programming, get him a python book or vb.net/c# book. Maybe he will become more interested in application development because of these languages (it was the case with me, I'm 14). :)
Edit: This is assuming he doesn't have much programming experience.
well, this is not completely open source (the editor isn't, the engine is), but I recommend RPG Maker VX (if he likes role playing games):
http://tkool.jp/products/rpgvx/eng/index.html
I have used this (and the earlier versions) for some time. It is nice because there is a great editor and event system which can teach basic programming concepts without writing any code. Once your nephew wants to write some real code, there is an entire API (RGSS2) written in ruby that they he is free to manipulate and extend. This API makes up most of the game engine, hiding only low level implementation stuff.
There are other programs out there like GameMaker, but RPG Maker is the most user friendly, while still providing a way to get at the more advanced stuff.
EDIT: I forgot to mention one of the best parts; there is a large and active community around RPG Maker. There are many forums completely dedicated to the program where people will be happy to help on even the most basic tasks, not to mention the great resources that are avilable.
Well programming on the NintendoDS is possible, however you'll be breaking and stretching quite a few laws there.
However, I should say that I learned most of what I did about hardware doing stuff just like that while I was back in school. I learned a LOT from doing that sort of stuff ;)
But I wouldn't recommend it to youngsters or newcomers because you'll be totally out of support (lots of frustration), might break your game console, and unless you already know about programming the learning curve is WAY to high.
Might I recommend starting out with flash or PC games before console programming?
Edit: When I mean breaking/stretching laws, I don't mean writing code for your hardware, that's up to you. But it is illegal to buy pirate memory cards and card writers (that infringe on patent laws). Also funding hardware piracy will unlikely be something to proud of.
Edit:#Mike F did you read my post? I said, I HAVE done this while I was a student, and I learned a lot. But it's still piracy, and yes I did my fair share of piracy when I was a poor student, but it's not something I'd want to teach someone just getting into programming. Would you?
Besides there are plenty of perfectly great ways to learn game programming without needing to hack stuff like RPGMaker, XNA, etc...
#Mike F: Once more just for the sake of it NDS flash-roms are produced through patent piracy(/infringement), not software piracy, as in it is illegal to produce such hardware because it goes against patent laws. And the companies that make such flash rom hardware are piracy companies that traffic their goods in the grey market, Its as simple as that. I'm not talking about "software piracy" at all here. Thats why I mentioned twice already that anyone is free to run whatever software on their hardware, be homebrew or whatever.
Ars Technica just came out w/ an article about open-source gaming consoles. They are hand-helds, so I don't know if that's an issue but they seem to be pretty nice, with lots of features to tinker with.