Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

Afar MV

ULE6JlE.png


On top of the above, progress on the in-game forums. They're all set up, it's just skinning them that is the issue now.

I am working on a super lightweight theme for such a small space. At current I have done the forum index and topic list pages.

3Prv3pv.png


Note: Marsigne doesn't show in the online players list because they aren't connected via the game.

SXOI8Ug.png


It's an intentionally limited and lightweight skin. Nothing but what is absolutely necessary.
 
zoJgMLo.png


RZxkOi8.png


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.
 
The . concat always hits me with PHP

I think your closest comparison to ghost players would be the secret-base characters in Pokemon Ruby/Sapphire/Emerald (and 3DS remakes of R/S). Perhaps see what's been done there to get some ideas on what kind of interaction could be done with Afar?

The trainer class system may have a place with ghost players here, unless it's not too much work to get the actual player sprite working.
 
I'm using the actual sprites at least, yeah.

Thanks, I'll look into that.

Today my driving instructor cancelled on me so I took the extra time to make sprites for the character creator.

We now have:

15 hair colours
8 hair styles
6 skin tones
9 basic clothing styles

So much more customisation. Here's the hairs:

wz1mrXa.png
 
MV using Pixi.js gives you an opportunity to tint the sprite colours at runtime, you may be able to set up a base grey scale sprite for your components and multiply the desired colour against it at runtime, rather than create additional assets for colour differences

It's how I'm handling skin, hair and eye colour for my project. You can even do things like sliders for fine customisation
 
Neat.

Unfortunately as an extra hack measure I don't generate any graphics in game - it's done in PHP on the server. That way you can't edit some numbers and see rare items before they're available, or mock up fakes, etc.
 
Things done today:

- Built my own message system
- Built my own inventory system

To show it all off in one screenshot:

VhDxVWb.png


The message system uses my own bbcode-like system, as in the user guide. The red text there when clicked opens the left hand window on that page's guide (there's just, as you can see, no guide page called "Good Sailor").

I can literally put any HTML I want in there, should I want to do some complicated user input or something.

I have also done choices but it's a bit different to RMMV. I just insert hyperlinks into the text (using the bbcode style thing) anywhere in the conversation, and when clicked, it's used later on in the conversation. So while I can set it up like this:

@1,{speechbubble}This is the first choice.@%
@2,{speechbubble}This is the second choice.@

adg3ONj.png


I don't need to. I can just put @3,Choice text@ anywhere in a conversation. When clicked it sets the choice variable to 3 (in this example), and then later on in the event I just do a conditional branch with this variable.

Eh, it works for my porpoises.

w9qHToUrvbnuKw99AU5agNVt.jpeg


The inventory system?

Right now it just displays the items you own and how many of them. You can't do anything with them. It's completely separate from RMMV's inventory though.

Will edit it to not display a number when you only have one of the item.

I will make a system for large numbers, like in RuneScape. (Actually, copied from RuneScape, TBH):

>999: display number
1000 - 999,999: display thousands as $K
999,999 - 999,999,999: display millions as $M
999,999,999 - 999,999,999,999: display billions as $B

I.e. if you have 1,024,768 feathers, the inventory just says you have 1M.

If you have 8,192 giraffes the inventory says you have 8K.
 
I've been playing for a few minutes and I notice I get a frame lockup every two seconds whenever you send my position to the server. Perhaps put requests into separate threads so they don't lock the main thread?
#333msLyf

EDIT: After reading the post on RMWeb, I think I might make a little video showing how the lag happens. I'm pretty sure a contributor is because you use pngs instead of compressed jpegs for backgrounds, which lags everything down to a halt, but it's just speculation because I don't really have any way to verify that.

EDIT2: It's not so bad after you've loaded the resources, but the first load is preeetty slow.

EDIT3: Here's a video of the map stuttering. I'm aware the battle loading screen was an MV one, and not much can be done about that.

I didn't capture it in the video because it's hard to tell, but the delay when opening menus is pretty annoying - about 1/2 - 1 second delay, but the actual content seems to load well after the first time.

I'd highly recommend moving the inventory to in-game, so that we don't have to deal with the lag when trying to do stuff with it. For stuff that wouldn't be used as heavily, what's currently there is fine.
 
So, here's my input. I've been playing on my Mac Air, which runs OS X El Capitan, and I've been playing on Safari. There's considerable lag. For some reason, instead of playing the music, it downloads the music. There are also some graphical glitches. I might take some screenshots later, or just make a video like ZenVirZan. Please let me know if there's anything I can do to help.
 
Thanks guys. Some updates.

Counterlag Measures

- Sends your position far less (will do it at important points, such as starting an event, and every 20 steps)
- Music now loads in a seperate frame and using HTML5 Audio; this has got rid of music lag which is something RPG Maker MV has as a whole, not just this game
- Added a load frame which basically preloads any important images in the order you're likely to need them. This frame is on the login, register and gameplay pages (but invisible). So, images should have loaded by the time you open a menu or do something that needs an external image.

Other Bug Fixes

Music now loops
Music now plays properly for everyone (assuming they have HTML5 and haven't disabled audio)
Music flows from one map to another

More

Now showing off what will eventually be my soundtrack.
 
It freezes every ~5 seconds or so now instead. So it's getting better. It also freezes every time you face an event, so if I face the billboard, it'll freeze, and if I move to the other side of that same billboard it'll freeze again.

I'm assuming you're sending player position for verification's sake, so people don't hack across areas right? If it only checks every 20 steps, that's long enough to let cheaters get away with it I'd imagine.
I still really think a little UDP server or something to handle that would be much better, or something that doesn't block.

EDIT: Also I can comfortably highlight all items by single clicking them. Is it meant to be one at a time or as many as you want?
 
I'm not using sync very often - and not for sending player position - so I'm not sure why it's lagging so much for you? The only time I use sync not async is when the game needs data back, like in the initial load.

I'm assuming you're sending player position for verification's sake, so people don't hack across areas right?
Basically yeah. I know people can and will hack, but if I can at least see whether they made 20 steps in a milisecond, I know something dodgy is going on. Basically I whittle it down until hacking becomes equally as time consuming as actually playing the game. Then it doesn't matter if someone hacks their way through.
 
  • New soundtrack: currently three tracks. Based on Vivaldi: The Four Seasons.
  • New sound system instead of RPG Maker's, this fixes music lag
  • Music looping fixed
  • New image loader on the login, register and play pages: means the images used in menus are more likely to have loaded by the time you come to open them, diminishing lag
  • Developed two anti-spam systems:
  1. You must read a noticeboard in-game before using the forums. These will be dotted all around the place. Stops any bots posting who aren't actually able to play the game.
  2. Honeytrap system on the register page; catches most bots.
  • New wood cutting system
  • Fixed bug with forums overlapping menu
  • Menu now shows what each button does when you hover over them
  • Log out button now works
  • Preloads login/register backgrounds for better transition
  • Greatly reduced file size in images used for login/register
 
I was disappointed at the lack of battlers for MV out there so I have been making some for Afar. They are just edits, mind. You can find them in the resource boards if you want to use them.

RAQOiYw.png
 
I should really remake this thread as a proper thread.

Anyway.

Little event added that's more a proof of concept that anything useful. It's to show how the cooperatively created world will work.

Basically there are two events in the game now. One is a bandit on a horse who roams around. If any player in the world kills him, then he is gone, and suddenly traders will be less wary and will sell more contraband things (not yet implemented).

However, then, he reappears as an injured bandit lying next to his horse. Offer to help him and he will reward you - and will then be found roaming around the world again. This happens if any player in the world decides to help him.

That's a really simple event and doesn't do much. Imagine it intertwined with hundreds of other events that have similar systems, all interacting with one another, such that the actions of any player can affect the gameplay of all players.

59e3Dg4.png


A collection of large updates will be announced as the Bandits of Afar expansion. Basically just a way of telling people waiting for more content that there is a significant load of new stuff.

Due out at the end of this week hopefully. Bits are being added in small chunks, but won't be announced until it's all done such as to act as one coherent package.
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top