Jump to content

  • Log In with Google      Sign In   
  • Create Account


In dev stage :p


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
19 replies to this topic

#1 heiro   Members   -  Reputation: 219

Like
0Likes
Like

Posted 06 April 2012 - 10:14 AM

Hi guys, I discovered http://gameware.autodesk.com/ 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 [deleted by mod. Use Classifieds to seek people]

Sponsor:

#2 medevilenemy   Members   -  Reputation: 308

Like
0Likes
Like

Posted 06 April 2012 - 10:39 AM

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.
There was a saying we had in college: Those who walk into the engineering building are never quite the same when they walk out.

#3 SimonForsman   Crossbones+   -  Reputation: 5804

Like
0Likes
Like

Posted 06 April 2012 - 11:30 AM

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.


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).
I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!

#4 heiro   Members   -  Reputation: 219

Like
0Likes
Like

Posted 06 April 2012 - 11:35 AM

i was thinking about a simple 2d mmorpg (forget the 3d its impossible 4 now) without client (browser game)

#5 shadowisadog   Crossbones+   -  Reputation: 2291

Like
1Likes
Like

Posted 07 April 2012 - 07:29 PM

i was thinking about a simple 2d mmorpg (forget the 3d its impossible 4 now) without client (browser game)


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.

#6 heiro   Members   -  Reputation: 219

Like
0Likes
Like

Posted 08 April 2012 - 02:33 AM

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 "

implementing security" and "handling bandwidth issues

" (the last cauz i dont think i will have so much fans with a simple 2d mmorpg :P)

#7 SimonForsman   Crossbones+   -  Reputation: 5804

Like
0Likes
Like

Posted 08 April 2012 - 05:00 AM

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 "

implementing security" and "handling bandwidth issues

" (the last cauz i dont think i will have so much fans with a simple 2d mmorpg Posted Image)


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.
I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!

#8 heiro   Members   -  Reputation: 219

Like
-1Likes
Like

Posted 08 April 2012 - 05:13 AM

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?

#9 Bacterius   Crossbones+   -  Reputation: 8178

Like
0Likes
Like

Posted 08 April 2012 - 06:11 AM

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?

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 scalable online chat which records what people say in a database (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.

The slowsort algorithm is a perfect illustration of the multiply and surrender paradigm, which is perhaps the single most important paradigm in the development of reluctant algorithms. The basic multiply and surrender strategy consists in replacing the problem at hand by two or more subproblems, each slightly simpler than the original, and continue multiplying subproblems and subsubproblems recursively in this fashion as long as possible. At some point the subproblems will all become so simple that their solution can no longer be postponed, and we will have to surrender. Experience shows that, in most cases, by the time this point is reached the total work will be substantially higher than what could have been wasted by a more direct approach.

 

- Pessimal Algorithms and Simplexity Analysis


#10 heiro   Members   -  Reputation: 219

Like
0Likes
Like

Posted 08 April 2012 - 09:00 AM

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

#11 heiro   Members   -  Reputation: 219

Like
0Likes
Like

Posted 08 April 2012 - 09:28 AM

http://www.flashwonderland.com/flash-actionscript-php-one-way-communication/as3-php-communication-12.html

I copied it exactly but happents nothing

#12 shadowisadog   Crossbones+   -  Reputation: 2291

Like
0Likes
Like

Posted 08 April 2012 - 01:08 PM

http://www.flashwond...ication-12.html

I copied it exactly but happents nothing


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):

http://www.gamedev.n...ne-gaming-r2062
http://en.wikipedia....cryptography%29
http://hejp.co.uk/fl...et-programming/
http://playerio.com/...games-tutorial/
http://www.skullbox.net/tcpudp.php
https://developers.g....com/appengine/

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: http://playerio.com/documentation/tutorials/building-flash-multiplayer-games-tutorial/ 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.

#13 heiro   Members   -  Reputation: 219

Like
0Likes
Like

Posted 09 April 2012 - 02:16 AM

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:


// 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;
}

The php is same as in the link i posted.

#14 shadowisadog   Crossbones+   -  Reputation: 2291

Like
0Likes
Like

Posted 09 April 2012 - 05:42 PM

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

#15 heiro   Members   -  Reputation: 219

Like
0Likes
Like

Posted 10 April 2012 - 12:21 AM

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?

#16 SimonForsman   Crossbones+   -  Reputation: 5804

Like
0Likes
Like

Posted 10 April 2012 - 02:17 AM

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?


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 massivly multiplayer 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))
I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!

#17 heiro   Members   -  Reputation: 219

Like
0Likes
Like

Posted 10 April 2012 - 02:45 AM

Oh my god man i didnt understand anything!!! What are all these sockets, ram with server etc. I need a book for all these!

#18 Bacterius   Crossbones+   -  Reputation: 8178

Like
0Likes
Like

Posted 10 April 2012 - 03:17 AM

Oh my god man i didnt understand anything!!! What are all these sockets, ram with server etc. I need a book for all these!

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.

The slowsort algorithm is a perfect illustration of the multiply and surrender paradigm, which is perhaps the single most important paradigm in the development of reluctant algorithms. The basic multiply and surrender strategy consists in replacing the problem at hand by two or more subproblems, each slightly simpler than the original, and continue multiplying subproblems and subsubproblems recursively in this fashion as long as possible. At some point the subproblems will all become so simple that their solution can no longer be postponed, and we will have to surrender. Experience shows that, in most cases, by the time this point is reached the total work will be substantially higher than what could have been wasted by a more direct approach.

 

- Pessimal Algorithms and Simplexity Analysis


#19 SimonForsman   Crossbones+   -  Reputation: 5804

Like
0Likes
Like

Posted 10 April 2012 - 03:21 AM

Oh my god man i didnt understand anything!!! What are all these sockets, ram with server etc. I need a book for all these!


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)
I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!

#20 heiro   Members   -  Reputation: 219

Like
0Likes
Like

Posted 11 April 2012 - 02:18 AM

Here is my chat 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>





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS