Now implemented.
OK, those characters could have been set up a bit better, as they all look the same. It was done quickly. Maybe this will be the Afar equivalent of Baldies...
But it's all implemented and working.
Those are real players, walking around the map. Sort of. They are computer controlled representations of real players. You can interact with them. You can walk through them, but they can't walk through walls.
Here's a writeup from RPG Maker Web explaining what they are and why.
____________________________________
Because of some bugs* it feels like I have done nothing today. While it's a Saturday, so not officially a development day, I could have got so much more done. The trouble with being productive is that when you have a bad day it really sets you back.
So I would like to at least explain the concept I am working on.
Ghost Players
Ghost players are how other players are seen in Afar. You do not see other players live. You see, essentially, where they have been.
I call them ghosts because while you can interact with their player through them, they are detached, roaming around disconnected to the player. They are computer controlled bots that do their own thing.
Why have them at all?
Ghosts are there to provide the feeling that you are playing alongside hundreds of other players.
They are nodes that you can use to initiate interactions: trading, battles, private messages, guild join requests, etc.
How are you going to make them?
Each map has a bank of blank events. When you enter a map, that map's players list is drawn from the server. This list is used to turn those events into representations of real players.
Each map has a set number of these players. This is so that you can enter small buildings without being overwhelmed by hundreds of ghosts, and so that some maps can have no players at all (like a boss battle).
How far have you got?
- Created a bank of events in each map
- Game draws a list of players in your map from the server
- Randomised this list
- Removed player from the list
- Game builds this into an associative array linking player id with event id so that those events have a player id attached to them
- Modified player graphic generation to take a player id
What needs to be done next?
- Game gets that player's sprite and downloads it, transforming its associated event visually
(done)
- Game generates some text for the ghost to say when spoken to (this is based on what progress that player has made in the game, they will have a somewhat relevant conversation with you when you talk to them)
- Game creates a show choices list of options for the player to choose from
What options will there be?
Current plans are for:
1. Talk: initiates a computer generated conversation
2. Trade: opens the trade window where you can send a trade request to the player
3. Challenge: starts a simulated player versus player battle (computer controlled representation of that player)
4. Send Guild Invite: invites that player to your guild
5. Send private message: allows you to send that player a PM
6. View character profile
Any other ideas are welcomed and much appreciated.
When will this all be ready?
With the exception perhaps of trading and guilds, this will all be ready in a basic form for game launch. (Yes, that includes SimPvP Basic).
Basic?
Yes. The battle system for Afar is going to take a while to create. So initially there will be a basic battle system and basic SimPvP to go alongside.
How will SimPvP be made interesting?
You fight an enemy which has the looks, equipment and skills of a real player.
Eventually it will also borrow from their play style. If they favour a certain spell, so will their ghost.
Players will build up a bestiary of beaten players as trophies.
So what was the *bug?
...
I am dual coding in JavaScript and PHP.
JavaScript concatenates strings using "+". PHP concatenates strings using "."
Damnit.