Hi, I'm going to implement a mobile MMORPG. I'm curious if I can use Arianne as a server side solution: can the interaction protocol be customized to fit my needs? I need to use my own protocol for client-server interaction, is that possible?
You seem to have CSS turned off.
Please don't fill out this field.
Yes, it will do the work. ( Use latest released version because CVS won't work for a week or so )
The point is why you want to reimplement the protocol? Arianne allows you to write any kind of game with not much effort. Sure, you can rewrite the whole protocol, but then I don't get the sense on using someone else code.
I have spent a lot of time reading "in depth" docs on similar projects, to realize after several hours, that it is not what I need. So I beg my pardon for these questions:
0. I am in need of a ready solution, which handles logins, user accounts, databases, game lobby...and lots of other server side stuff. I don't want to reinvent the wheel, just to write a game
1. Can I use java, not python to write game logic? The tutorial describes python, but it says that java can be also used. Is there any docs on how to write a game in java?
2. Mobile devices are resource constrained, so only a thin client can be implemented on them(not much logics). and it implies some limitations on protocol: java object persistence cannot be used(it simply does not exist on mobiles), so if protocol uses persistence, this will have to be changed.
3. How stable/tested is Arianne?
0. Of course, Arianne handle that:
- Logins using the default protocol. You can't change that easily but by change arianne code.
- User accounts and database. You just need to implement the PlayerDatabase interface to have it working as you want, actually we are working with a MySQL database.
- Game lobby ( bussiness logic ). This is 100% configurable. The tutorial shows how to create it.
1. Sure, I did in python because I found it more clear, but the code is 100% exactly the same. Just implement RPRuleProcessor and RPZone interfaces to make the game fit your needs. In case of RPZone you better inherit of MarauroaRPZone.
2. Nothing at all. I serialize the object myself, because I wanted to write a C client, so I didn't want Java stuff on the middle.
3. Mapacman server has been running for more than a week without problems, but it is always being improved. Actually CVS is on the middle of a big change, but on the previous year CVS has been always working perfectly.
4. I need the possibility to "save" the world as often as I want, plus the possibility to save the player state almost on each turn, cause due to mobile specifics, the network can disappear suddenly, and players won't be happy about unsaved state.
what happened to the original idea. There were great objects in place, I had seen some cool worlds and now there is just pacman. Do you intend to go for the original direction (multiplayer role play) in the future ?
As long as server doesn't go down you have no problem. Server handle all the timeouts and exits and you can code ( it isn't by now ) a method to save the world each X minutes.
Thank you for quick answer. Is Jython needed to compile the server? readme says that it's optional, but the ant build fails without it.(marauroa.game.python.* needs org.python.util.*...)
Yes, it is requiered.
But it is not used at all if you don't use Python.
I will work to make this dependencie optional.
It seems that marauroa is what I've been looking for, but I'm still confused about how to write a game. The documentation is too scattered so I still don't have a clear picture.
1. The MessageC2SXXX class is used to send messages from client to server. It implements Serializable due to javadocs, which makes it unusable on mobile phones(no serialization api). It's possible to create a client which sends byte over UDP; you can send primitive types/Strings, but not serialized objects. How can this be solved? I don't understand how to build a client without using this messaging API. Maybe you have a sample java client or a java oriented tutorial?
2.I don't really understand why to use RPObject. This conception seems confusing. Do I have to use PRObjects in my game logic? Game logic is written in java, so I wouldn't want to rewrite the classes. How does not using of RPObjects influence perfomance?
Thank you for your time
1. No serialization really. It use our own serialization class. You don't need to care about messages, just use them as in package mapacman.client class nullClient. That is a Java 100% class.
If you read ariannexp it does the serialization task in C.
2. Everything is done using RPObject, is is an ingame object with it set of attributes. If you don't use RPObjects you need to rewrite most of the RP generic code. I personally don't see why to skip them. May you show me an example?
About a game tutorial, I will try to add an addon to the Python tutorial, in fact, it is the same thing but you have to write it in another classes.
Yes, I see now that this serialization model fits me. But I will not be able to use NetworkManager at client side at least at its original form :( because its several fields are of types, which are not accessible on mobile platform( Map, List..).
This also applies to Message, because it uses InetSocketAddress. As far as I saw this will not influence serialization of messages and client-server interaction, isn't it? I mean that Message class with cut InetSocketAddress fields will be serialized/deserialized correctly?
ok, What are the alternatives for Map, List, etc on the mobile platform?
On ariannexp I have implemented them using C++ STL containters. I am sure J2ME has something similar.
About messages and InetSocketAddress it won't matter at all, but looks like you will need to specialize somethings of the marauroa.net package...
Hi. Still about the subject: any success making arianne j2me compatible?