• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
?????????????

In dev stage :p

19 posts in this topic

Hi guys, I discovered [url="http://gameware.autodesk.com/"]http://gameware.autodesk.com/[/url] yesterday and they rock. Does anyone have information about how they work? There is no package that has them all together? Something I read on UKD and CryEngine.

Also im making a simple mmorpg in flash and i need [[i]deleted by mod. Use Classifieds to seek people[/i]]
0

Share this post


Link to post
Share on other sites
just going to say: Flash isn't really suited to a MManything, and MMOs are rarely simple. Start with something less ambitious and build up your programming/software design chops, then go from there.
0

Share this post


Link to post
Share on other sites
[quote name='medevilenemy' timestamp='1333730395' post='4928820']
just going to say: Flash isn't really suited to a MManything, and MMOs are rarely simple. Start with something less ambitious and build up your programming/software design chops, then go from there.
[/quote]

Flash has socket support which really is all you need for an MMO client (Making an MMO client is fairly easy aswell, the backend is the hard part).
0

Share this post


Link to post
Share on other sites
i was thinking about a simple 2d mmorpg (forget the 3d its impossible 4 now) without client (browser game)
0

Share this post


Link to post
Share on other sites
[quote name='heiro' timestamp='1333733708' post='4928839']
i was thinking about a simple 2d mmorpg (forget the 3d its impossible 4 now) without client (browser game)
[/quote]

It is still a client even if you implement it in a browser. I don't really consider a 2d mmorpg very "simple" either. You will have the same needs for managing databases, implementing security, handling bandwidth issues, ect.

My advice would be to be sure you can do all of the following: Pong, Pacman, Tetris, Mario, a 2D rpg, a chat program, and can interact with databases securely. If you have the skillset to do all of that then you will maybe be able to approach a 2d online rpg game... I think the massive part would require a bit of experience with a "non" massive online rpg game as well.

Anyway back on topic a bit... You mention you want to make a 2d mmorpg so why would you need 3d middleware? For instance Beast is a lighting API specifically tailored to 3d games.... Scaleform allows for nice GUIs in a 3d environment (Although if you are USING flash, then you have absolutely no need for scaleform). HumanIK is for realistic human kinematics and once again will do you very little good in a 2d flash based game (you can't even use it). Kynapse offers high performance pathfinding but once again simple A* would probably be sufficent for your needs (that product is also tailored more towards 3d games).

In-fact I will safely say that you do not need any of those products. Even if you were making a 3d game, you still do not need any of those products. If you use UDK then it has Scaleform built in as the UI system, but even then you still don't absolutely NEED it.

That is to say the tools that you use don't make a good game, YOU make a good game (although most of the time your first few/ten/hundred will not be very good until you gain experience). These tools are made for professionals in professional settings doing professional things under professional budgets.

Using professional tools will not give you professional results, nor will it make you a professional. Wearing the same shoes as a professional basketball player will not making you play basketball as well... using a professional hammer will not make you a professional carpenter... and using professional game development tools will not enhance your results unless you have the experience to use them properly. Most of the features in such tools will be lost due to the fact they were made to support large teams and large worlds... This should not be your aim as a small team... You should aim small because that is the best chance that you have of success with game development. Aiming small does not mean you can not make a great game, it just means knowing and understanding your own limitations in terms of experience, time, and budget.
1

Share this post


Link to post
Share on other sites
Ok i get it, thank you for the big explaning post! The examples with the professional tools where very clear! I think im just gonna work on flash. My biggest problem for now is that i cant communicate php with actionscript 3 so i cant pass variables. I have tried lots of codes but still nothing. I also have no idea about the "[color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif][size=3][left]implementing security" and "handling bandwidth issues[/left][/size][/font][/color]" (the last cauz i dont think i will have so much fans with a simple 2d mmorpg :P)
0

Share this post


Link to post
Share on other sites
[quote name='heiro' timestamp='1333874000' post='4929258']
Ok i get it, thank you for the big explaning post! The examples with the professional tools where very clear! I think im just gonna work on flash. My biggest problem for now is that i cant communicate php with actionscript 3 so i cant pass variables. I have tried lots of codes but still nothing. I also have no idea about the "
[left]implementing security" and "handling bandwidth issues[/left]
" (the last cauz i dont think i will have so much fans with a simple 2d mmorpg [img]http://public.gamedev.net//public/style_emoticons/default/tongue.png[/img])
[/quote]

Loading php generated data with actionscript 3 shouldn't be a problem (and you can pass data back to php by encoding them in the URL), It is not a suitable way to implement an MMO though (Due to the insane HTTP overhead which will kill your bandwidth for an MMO scale game), For a smaller scale game (less concurrent players basically) it works but even then you might need to compress the data to keep things managable.
0

Share this post


Link to post
Share on other sites
Then how can i do it? For example, how i will pass the ingame name of the player from the database to the flash textbox or label?
-1

Share this post


Link to post
Share on other sites
[quote name='heiro' timestamp='1333883598' post='4929282']
Then how can i do it? For example, how i will pass the ingame name of the player from the database to the flash textbox or label?
[/quote]
Don't take this wrong but you are not ready to develop a 2D mmorpg. Try and do simpler parts of the whole mmo as a standalone game/prototype such as implementing a [u]scalable[/u] online [u]chat[/u] which records what people say in a [u]database[/u] (see what I mean? you will be able to use the concepts in your mmo but you won't need much work to get your prototype running). Do this for many parts of the mmo and then when you're ready you can tackle the whole thing (probably in a few weeks/months if you work hard).

Also, mmorpg's require a lot of planning and designing and if you jump head-on into coding, you will inevitably hit roadblocks when you start thinking "maybe I shouldn't have done it like this" or "this isn't a very smart way of doing that" and you will have to refactor and refactor endlessly which will ultimately make you waste your time. By prototyping several times you can acquire a better idea of the concepts and notions that make a mmorpg and will be able to get it somewhat right with less time spent rewriting inappropriate code.

Unless you are very bright, of course, but even if you are you would probably still benefit from this prototyping phase.
0

Share this post


Link to post
Share on other sites
i think you are right, veeeeeeeeeeery right man. But i still have the communication problem i described before. I know how to use mysql and php together but i dont know nothing about php and as3 communication xD
0

Share this post


Link to post
Share on other sites
[url="http://www.flashwonderland.com/flash-actionscript-php-one-way-communication/as3-php-communication-12.html"]http://www.flashwonderland.com/flash-actionscript-php-one-way-communication/as3-php-communication-12.html[/url]

I copied it exactly but happents nothing
0

Share this post


Link to post
Share on other sites
[quote name='heiro' timestamp='1333898899' post='4929333']
[url="http://www.flashwonderland.com/flash-actionscript-php-one-way-communication/as3-php-communication-12.html"]http://www.flashwond...ication-12.html[/url]

I copied it exactly but happents nothing
[/quote]

1. You should not copy things exactly. That is not going to get you very far with learning much of anything. If you want to learn to draw, do you find a nice drawing and trace it? How many times of tracing until you can finally draw something without tracing it?

2. Are you running the php on a server? Did you verify that the URL is correct?

Here are some resources for you (by the magical powers of Google):

[url="http://www.gamedev.net/page/resources/_/technical/multiplayer-and-network-programming/security-issues-of-online-gaming-r2062"]http://www.gamedev.n...ne-gaming-r2062[/url]
[url="http://en.wikipedia.org/wiki/Salt_%28cryptography%29"]http://en.wikipedia....cryptography%29[/url]
[url="http://hejp.co.uk/flash/actionscript-3-socket-programming/"]http://hejp.co.uk/fl...et-programming/[/url]
[url="http://playerio.com/documentation/tutorials/building-flash-multiplayer-games-tutorial/"]http://playerio.com/...games-tutorial/[/url]
[url="http://www.skullbox.net/tcpudp.php"]http://www.skullbox.net/tcpudp.php[/url]
[url="https://developers.google.com/appengine/"]https://developers.g....com/appengine/[/url]

The first link talks about security issues, the next a bit about salting and why it is important, the next deals with socket programming in flash, then a really long tutorial on building multiplayer games in flash, the next deals with the difference between TCP and UDP, and the last is a resource that is becoming popular for implementing backends for this type of project....

This is not an endorsement, you have a LONG way to go, but I will put this information in-case others need it.

If you read this one mostly: [url="http://playerio.com/documentation/tutorials/building-flash-multiplayer-games-tutorial/"]http://playerio.com/documentation/tutorials/building-flash-multiplayer-games-tutorial/[/url] I think you will gain an appreciation for the amount of work your in for (at least 10% of the work your in for!)

Also I understand that this is a forum and we are not expected to write perfect English (and that many users do not speak English as their primary language), but could you please put a bit more effort into your posts? If possible please at least attempt to use capitalization, grammar, and avoid obvious spelling mistakes... It makes your posts hard to read and does not lend much credibility to what you have to say.
0

Share this post


Link to post
Share on other sites
Yes, sorry but my first lang is greek and there is a huge difference, but i will be more carefull. Thank you for the tuts, be sure im gonna reade all! Now, about my code take a look yourself:

[code]

// define the PHP file that will be loaded
var phpFile:String = "heirosfiile.php";
//Create a URLLoader object with the name myLoader
var myLoader:URLLoader = new URLLoader();

//specify dataFormat property of the URLLoader to be "VARIABLES"
//This ensure that the variables loaded into Flash with the same variable names
myLoader.dataFormat = URLLoaderDataFormat.VARIABLES;

function checkComplete(evt:MouseEvent):void {

// Create a new URLRequest object specifying the location or URL
// of the PHP file.
var urlRequest:URLRequest = new URLRequest(phpFile);

//Load the PHP file into the loader by using URLRequest
myLoader.load(urlRequest);

//Listen when the loading of PHP file COMPLETE
//Call the loadComplete function when the loading COMPLETE
myLoader.addEventListener(Event.COMPLETE, loadComplete);

}
// Hook up the button with the function loadFile
button.addEventListener(MouseEvent.CLICK, checkComplete);
function loadComplete(evt:Event){

// Display the value with variable name "Candidate"
textbox1.text = evt.target.data.Candidate;

//Display the value with variable name "Date"
textbox2.text = evt.target.data.Date;
}
[/code]

The php is same as in the link i posted.
0

Share this post


Link to post
Share on other sites
When something does not work as expected, the first tactic should be to debug it. In this case I would try a number of things:

1. Try putting string literals in the textbox1.text and textbox2.text fields in the loadComplete function (so like "test"). If you see those values then the problem would be that Candidate and Data are blank (which is likely).

You ARE running this on a server right? If you are trying to run it locally on your machine then it will not work. To do a test in your php file, try printing your values as well and loading the php page in a browser.

Try fully qualifying your URL path and see if that makes a difference as well...
0

Share this post


Link to post
Share on other sites
I tryed it both on wamp (local) and on a server too. I will do these tests and i will tell you ;) Right now im making a test chat that Bacterius said and i think im on a good way BUT i have a tiny problem. Could i post my code here or its not permited?
0

Share this post


Link to post
Share on other sites
[quote name='heiro' timestamp='1333883598' post='4929282']
Then how can i do it? For example, how i will pass the ingame name of the player from the database to the flash textbox or label?
[/quote]

The appropriate way is to:
1) Write a server application, preferably one capable of running in a distributed fashion (This depends on the complexity of the game itself, if the game is simple enough you can get away with 1 servermachine per world but most MMOs need more. (as an example WoW runs a few hundred servers per world) (This should be written as a standalone application, not as a webserver script)
2) Have the server application read the necessary data from the database and keep it in RAM while it is needed (cuts down on database access, don't use your database as a RAM replacement or your performance will suffer (Allthough some SQL databases do support memory mapped tables that are quite fast).
3) Have the flash client connect to the server using a socket.
4) Send and read data using the sockets, make your own game specific binary protocol for this and make sure it is as optimized as possible (For an MMO it is essential, you will have to handle thousands of concurrent players (MMO stands for [b]massivly[/b][b] multiplayer[/b] online, not persistent online) so every byte counts. (and bandwidth is not cheap)
5) have the actionscript parse the data it reads from the socket and then use it appropriatly.


Using URL requests only really works for turnbased games(DreamWorld is an example of a turnbased MMO which works using this method) or slower games with a low number of concurrent players(not MMOs or even action heavy normal multiplayer games) but even for these games it is a sub optimal method to use which will greatly increase your bandwidth costs and thus make it alot harder to actually keep the game operational. (a simple test using wireshark and my own webserver showed that sending the word "test" using HTTP required 385 bytes. (The request for the document required 719 bytes)
Sending the same using raw sockets can be done using 5-6 bytes (a 1-2 byte "length" value + the 4 bytes for the text itself) and a 1-4 byte request.

If you use the var=value&var2=value2 syntax you'll also need at the very least 5-6(4-5 for the first value) bytes for each 1 byte value you wish to send, 5-8 bytes per 2 byte value and 5-13 per 4 byte value (unless you're sending floats, then the number of bytes required can get even higher) and to get that "low" overhead you'd have to restrict yourself to using single letter identifiers (Which will make your code a pain to work with)

the ~300 bytes of overhead(Just for the HTTP header), at an update rate of 10 times per second(a low update rate) and 3000 players (a small MMO) adds up to an extra 72Mbps bandwidth being used (on top of what you need for the things that are actually important or unavoidable(such as the TCP and IP headers).

if you send around 300 bytes worth of real data in each update you'll get at the very least another 100-400Mbps worth of unnecessary overhead due to the plain text transmission format. (If done badly you can end up with several Gbps overhead for a small (2000-3000 players) MMO, and that is only counting the upstream bandwidth from server to client, the overhead on data sent from clients to the server can be even worse.

Basically a MMO using HTTP will become prohibitivly expensive to host unless it is turnbased with very limited player interaction and even then the cost will be far higher than necessary. (HTTP really is a protocol that should have been dead allready, its not even suitable for normal websites anymore (But agreeing on a new standard for the web isn't trivial so it remains))
0

Share this post


Link to post
Share on other sites
Oh my god man i didnt understand anything!!! What are all these sockets, ram with server etc. I need a book for all these!
0

Share this post


Link to post
Share on other sites
[quote name='heiro' timestamp='1334047526' post='4929818']
Oh my god man i didnt understand anything!!! What are all these sockets, ram with server etc. I need a book for all these!
[/quote]
You're going to need a lot more than just some books. Programming experience doesn't come magically by reading books, you need to take baby steps and eventually, after several weeks or months of looking at a problem, you will finally understand how to tackle it.

When I started programming I wanted to do a sudoku generator (not even solver, just generator). I spent days trying to find how it worked, how I could do it so that it would generate a sudoku in reasonable time. I just couldn't. I did not understand how to make it work, and I felt pretty stupid. So I kept working, trying different things, prototyping... Almost two months later it all clicked together and I "got it", and it was immensely satisfying. And that was just a tiny little problem which would probably take me very little time if I had to do it now - and not because I memorized how to do it years ago, but because I understand the concepts behind it.

Long story short, you need to slow down and actually go through the baby steps before trying to do MMO's or any other big project. This has been revisited countless times on the forums - just check out all the threads "I'm new to java/flash/html/you-name-it and want to make an MMO", etc... it does not work. There is no shame in starting with simple stuff, everybody who starts out a new subject/topic (it doesn't even have to be game design or even about computers) does exactly the same thing. But accepting that you need to learn by doing crappy chat applications or buggy pongs before being able to make an MMORPG is crucial.

Essentially, before being able to do A + B you need to be able to do A, and B. And the best way to do that is to do A and B separately (which is called prototyping!). Otherwise if you just tackle A + B directly you will end up struggling because of the complex relationships between A and B (i.e. changing something in A may require a complete rewrite of B which in turn may need you to redesign A), and you will waste more time refactoring code to accomodate your changes that actually working towards making A or B work. Not the best analogy - but I hope it makes sense.
0

Share this post


Link to post
Share on other sites
[quote name='heiro' timestamp='1334047526' post='4929818']
Oh my god man i didnt understand anything!!! What are all these sockets, ram with server etc. I need a book for all these!
[/quote]

RAM = random access memory, it is the memory you use to store data while it is being worked with. (all variables in your program use RAM to store its data), the alternative to storing things in RAM is to store it on disk (which is what a database does, unless it uses memory mapped tables or caching). reading data from disk is ALOT slower than accessing data you allready have loaded into RAM.

a Socket is what applications use to communicate with eachother, You open it and can send data through it which can then be read by whatever application is on the other side. (The URLRequests you've used thus far also use sockets behind the scenes but restrict you to loading text, documents or other files over the extremely verbose HTTP protocol rather than simply sending and recieving data)
0

Share this post


Link to post
Share on other sites
Here is my chat code:

[code]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
.test {
text-align: center;
}
</style>
</head>
<body class="test">
<script type="text/javascript">
function display()
{
<?php
@ $text = $_POST['textfield'];
$db = new mysqli("localhost", "triplew_test", "1qw21qw2", "triplew_test");
$query = "insert into chat values ('', 'guest : ', '".$text."')";
?>
document.form1.textarea.value = <?php echo $text; ?>
}
</script>



<form id="form1" name="form1" method="post" onSubmit="display()">
<p>
<textarea name="textarea" cols="45" rows="20" readonly="readonly" id="textarea"></textarea>
</p>
<p>
<input type="text" name="textfield" id="textfield" />
</p>
<input name="go" type="submit" value="GO!" />
</form>
</body>
</html>[/code]
0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0