|
Making New Wyvern Clients
|
If you are a software developer, and you're interested in
writing a Wyvern Client for a particular platform, you've
come to the right place.
If you have no idea what this means, don't worry: it's
not required to play the game or be a Wizard. Just head
back to the
Wiz Manual or
Wyvern Home Page,
and you can learn more about the actual game there.
|
Checklist
|
If you're serious about writing a Wyvern client, you should
be able to answer "yes" to all of the following questions:
- Do you have experience programming computers in at
least one programming language?
- Are you familiar with basic TCP-based socket programming?
- Do you have a development environment set up for the
platform you're targeting?
- Do you know how to read and understand software API
documentation?
- Do you have plenty of free time available to work on it?
- Have you played Wyvern enough to understand the capabilities
required of a Wyvern game client?
If the answer to any of these questions is "no", then you're
almost certainly not ready yet. Writing your first Wyvern client
typically takes at least a month of pretty hard work, unless
you're just planning on making changes to an existing client.
If you're fairly confident that you can pull it off, then
proceed to the next section. Keep in mind that this isn't
going to be an introduction to UI or network programming.
We're going to assume you have the skillset and just give
you the information you need to interact with the server.
|
Basic Steps
|
After you've chosen the language and platform to develop for,
and set up your development environment, you should do a little
research:
-
Assuming that you've spoke to Rhialto, and have permission to connect to the server, then spend some time writing a design document for your game client.
Careful thought up front can save you days or weeks of backtracking later. The more complete your document is (including mockups or prototype pictures,if possible), the easier it will be for you to code it.
You should, at the very least, decide in advance:
-
The graphical layout of your client - what
views you will provide (we strongly recommend
at least the map view and server-text view),
and their relative sizes and positions.
-
What set of UI features you'll offer in your
client. Will you draw image/text inventory
and ground displays, or just plain text?
Will you show the server text output in color?
Will you have dialogs for customizing keyboard
shortcuts? Will you support sound? Command-line
editing shortcuts? Map zooming? The server
provides enough information to make a highly
customizable, full-featured client - if you want
to spend the time on implementing it.
- Read through the
Client/Server Protocol Manual
and verify that it has the information you need.
If it's missing something, please contact us.
-
Spend some more time writing a high-level technical
design document. At the very least, you should decide
how you'll solve the following problem before you
start trying to write the code:
-
How you're going to do the socket I/O - threads,
subprocesses, non-blocking I/O with polling,
message or event queues? There are many ways
to solve the problem, and your language and/or
platform may not offer all of them.
-
Make sure you have access to a crypt() function from a
library, package or module.
-
Make sure you have access to a utility that provides
the ability to gunzip a byte buffer.
- Download a copy of the
latest Map Editor
latest Game Client.
You'll want to extract the artwork out of either Jar file,
so you don't have to force the server to resend thousands
of individual images when you first begin connecting with
your client.
After following these steps, you should be ready to start coding!
|