Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Work in Progress / WIP: Behind The Land of Solodor (MMORPG)

Author
Message
Agent
14
Years of Service
User Offline
Joined: 7th Sep 2004
Location: Sydney, Australia
Posted: 18th Jan 2011 13:00 Edited at: 19th Oct 2011 20:55
=========================================================

19OCT11: SOLODOR Version 0.0.3 TECH DEMO has been released:

Download the game HERE (105MB Download)

=========================================================


Hi everyone!

It's time to announce the first official release of Behind The Land of Solodor!

Solodor is an MMORPG in the style of older Final Fantasy instalments. It's a 2D game that operates on a client-server model and features all the things we loved about that era of RPG games like swords, spells, monsters, items galore, exploration, PvE and PvP combat and more.

Solodor is at the tech demo stage, and is fully functioning with most of the core systems operational. I've released a version of the client that is slightly stripped of minor resources that aren't necessary for demonstration purposes. The server executable is also included in the download.

To play the game locally, just fire up the server software and then run the client. use the "Connect to Local Server" option to start the game.

Although the main menu "Connect to Remote Server" option is unavailable (I haven't created a slick UI for it yet), you can still connect to someone else's server by attempting to connect to a local server when you're not running one, then typing /CONNECT <ip> <yourname> to connect to the remote server. In this tech demo, the server has been hard-coded to limit the number of connections to 20, which is as far as I want testing to go at this time.

If you want something to fight, type the following command into the server (not the client):

SPAWN 2 30

Note that you do not require a slash to enter commands into the server, while the slash is required in the client or else it will treat what you've typed as a chat message. The 2 is the map number (2 is the outside area, known in this tech demo as Shadaah Forest) and the 30 is the count of NPC's to spawn. Some of them will be neutral, some will be friendly, and some of the hostile ones will be unarmed (free kills!).

Once you're in the game and connected to a server (either your own local one or someone else's), use WSAD to move your character around. Moving close to a hostile NPC will automatically attack it, and right clicking will cast a fireball, currently the only spell available in the game.

The objective of this release is to get some people downloading the game and testing it for me, either locally by themselves, or remotely with some friends. Please download the game and try it out, then post in this thread to let me know if it works, any troubles you experienced, or how much fun you had playing around with it

Download the game HERE (105MB Download)

Gameplay Video

Screenshot 1
Screenshot 2
Screenshot 3
Screenshot 4
Screenshot 5
Screenshot 6
Screenshot 7

C0wbox
12
Years of Service
User Offline
Joined: 6th Jun 2006
Location: 0,50,-150
Posted: 18th Jan 2011 13:06 Edited at: 18th Jan 2011 13:06
For once someone started an MMO WIP that doesn't sound like it's going to crumble beneath them. xD - This does actually sound like a reasonable project, but I'd like some screenshots before I download anything. !

Agent
14
Years of Service
User Offline
Joined: 7th Sep 2004
Location: Sydney, Australia
Posted: 18th Jan 2011 13:17
Oh right, screenshots - totally forgot. I've added some links to the original post!
C0wbox
12
Years of Service
User Offline
Joined: 6th Jun 2006
Location: 0,50,-150
Posted: 18th Jan 2011 13:29


baxslash
Bronze Codemaster
12
Years of Service
User Offline
Joined: 26th Dec 2006
Location: Duffield
Posted: 18th Jan 2011 13:33
Downloading...

Agent
14
Years of Service
User Offline
Joined: 7th Sep 2004
Location: Sydney, Australia
Posted: 18th Jan 2011 13:51
Added some more, better quality screenshots to the original post!
heyufool1
10
Years of Service
User Offline
Joined: 14th Feb 2009
Location: My quiet place
Posted: 18th Jan 2011 15:41 Edited at: 18th Jan 2011 15:50
Well, the graphics needs work. I'm personally sick of seeing the RPG Maker sprites, so I suggest getting some original ones. Even if they are simple/cartoony I would rather play that then play a game that uses the same old sprites.

Gameplay wise, I tried spawning enemies, but nothing would show up on the screen. The server said the entity(s) were created but nothing was on the screen. Then as I walked around I randomly got slingshotted back like I took damage from something invisible. Also the server said 1/20 players, so you can only support 20 players max? On a positive note, I like the music and the Title/Subtitle fading when you enter a new area

Sorry if the sounded really negative, but I wouldn't give advice if I thought it wouldn't help.

"So hold your head up high and know, it's not the end of the road"
Impulse Game Engine
Agent
14
Years of Service
User Offline
Joined: 7th Sep 2004
Location: Sydney, Australia
Posted: 18th Jan 2011 16:51
Thanks for your feedback! The negative is ok; that's the whole point

If you're being slingshotted, that's the entity interpolation routine accounting for lag - which will happen whether there's high latency between you and the server, or if you have a slow CPU. An old single thread CPU is not powerful enough to run Solodor, you need something dualcore or better. If you're not making 30fps on the client (type /debug) then you're going to have movement issues as timer based movement isn't implemented yet.

If you know of a source of better sprites, I'm all ears! RPG Maker is pretty much it, unless you want to pay for it (which it isn't time to do at this stage in development).

If you've created entities but you can't see them then you've either typed the command incorrectly or you're not in the right place to see them - you need to type "SPAWN 2 30" and then leave the house so that you're in the Shadaah Forest. You can't miss them. If the first argument is not 2 then the NPC's won't be outside the house, they'll be somewhere else. If the second argument is less than 30 then there might be few enough of them that you'll have to hunt for them. If you are certain you're doing it right then I'll have to find another cause - this could also be accounted for by poor latency. All the new NPC information needs to be sent to the client before the client can display them. Incidentally, while this information is being sent it may create a traffic jam, hindering movement communication - this will contribute to your slingshotting.

Yes, the demo server only supports 20 players. The number is completely arbitrary and I can support as many players as I choose, but I've chosen 20 for testing purposes. My goal is to create servers of 1000+ connections, but I haven't been able to test more than a handful of simultaneous connections so far. I want to see if 20 is a realistic number - if it's not, then development will continue in a different direction as a squad/team-based action RPG rather than a full scale MMORPG. On the other hand, if the server can handle 20 connections effortlessly (which it should, if its run on a machine with suitable bandwidth) then I am on course.

I kind of like the music and subtitle crossfades too - I'm always looking for nice little effects like that to contribute to the professional look and feel of the game!
tiresius
16
Years of Service
User Offline
Joined: 13th Nov 2002
Location: MA USA
Posted: 18th Jan 2011 17:16
Looks nice. What is this coded in and what did you do for the networking?


A 3D marble platformer using Newton physics.
KISTech
11
Years of Service
User Offline
Joined: 8th Feb 2008
Location: Aloha, Oregon
Posted: 18th Jan 2011 17:26
Quote: "For once someone started an MMO WIP that doesn't sound like it's going to crumble beneath them."


I think I'm slightly offended by that statement.

Neuro Fuzzy
11
Years of Service
User Offline
Joined: 11th Jun 2007
Location:
Posted: 18th Jan 2011 17:37
Quote: "An old single thread CPU is not powerful enough to run Solodor, you need something dualcore or better."

oh...?
Dark basic commands are mostly not thread safe?
I mean, if you've encountered this and moved past it, then Nm, but Dark Basic doesn't take advantage of multithreading.

Agent
14
Years of Service
User Offline
Joined: 7th Sep 2004
Location: Sydney, Australia
Posted: 18th Jan 2011 18:17 Edited at: 18th Jan 2011 18:21
Yes, I know, but my program thrashes the core it's running on. If CPU has only got one core then it may not have the power to run Solodor (which is very thirsty) as well as the OS and other processes, leaving Solodor without the processing power it needs to maintain a latent framerate.
C0wbox
12
Years of Service
User Offline
Joined: 6th Jun 2006
Location: 0,50,-150
Posted: 18th Jan 2011 18:32
Quote: "I think I'm slightly offended by that statement. "

I've only been considering recent "MMO WIP"s - yours hasn't had a post since september so I wasn't paying attention.

Just in general, every MMO WIP I've seen started flops or gets locked xD

KISTech
11
Years of Service
User Offline
Joined: 8th Feb 2008
Location: Aloha, Oregon
Posted: 18th Jan 2011 19:00 Edited at: 18th Jan 2011 19:12
@COwbox, It's all good.
For an MMO it's not unusual for there to be periods of inactivity in the thread. After all, it's been a work in progress now for 4 years. These dang things take FOREVER to get to a point where you can call it a release.

@Agent, pretty much anything made with DBPro consumes all the power of a core. It's just the way it works by default. That's not to say it couldn't run on a single core system, but it's going to eat all of the CPU time, where a dual core system would allocate Windows tasks and other background stuff to the second core.

For better performance, and if you want to give any excess CPU time back to the system, check out this thread on Decoupling the Display Loop for better performance. Taking that one step further you can take some of the extra cycles gained and use the Matrix1Utils command NICE WAIT and give a little power back to the system, which might make the game playable on a single core system.

This technique, or one similar at least, is going to be critical in getting the performance you need for an MMO. There's a TON of network processing going on constantly, and this will help with the lag.

If you need any help or suggestions on networking or improving performance just let me know.

What networking library are you using?

heyufool1
10
Years of Service
User Offline
Joined: 14th Feb 2009
Location: My quiet place
Posted: 18th Jan 2011 21:53
Quote: "which will happen whether there's high latency between you and the server, or if you have a slow CPU"

Alright, in my case it should be the latency because I got a 3.2ghz quad core CPU so, that should be plenty

"So hold your head up high and know, it's not the end of the road"
Impulse Game Engine
Agent
14
Years of Service
User Offline
Joined: 7th Sep 2004
Location: Sydney, Australia
Posted: 19th Jan 2011 01:49
Hi guys,

Quote: "@Agent, pretty much anything made with DBPro consumes all the power of a core. It's just the way it works by default. That's not to say it couldn't run on a single core system, but it's going to eat all of the CPU time, where a dual core system would allocate Windows tasks and other background stuff to the second core."


Yes, I'm aware. I'm trying to explain that to others Not only will Solodor not run properly on a single core machine, neither will almost any other DBPro program.

Your solution on separating the mainloop from the display function is interesting; I'm using a frameskip technique to keep the frames at 30. I still call SYNC to keep the internal FPS method working but I'm not calling any of the routines that update what's drawn unless then FPS is > 30. It's not perfect, but it works and I don't imagine many target systems are singlecores anyway. I don't have any interest in giving cycles back to the system - I'm running a high performance game here, I want all the juice I can get

Quote: "This technique, or one similar at least, is going to be critical in getting the performance you need for an MMO. There's a TON of network processing going on constantly, and this will help with the lag."


I'm not getting much lag. The latency in my netcode is almost entirely decided by physical distance between the client and the server. I find pretty smooth movement between two clients in the same city, but I've not tested it with people further away - I'm hoping to get some feedback on that from this release. The biggest communication problem I'm having (and I don't know yet if it's a problem, testing is needed) is when a new client connects to the server and a dumb of all entity data (ie, gamestate) has to be sent. In an RPG there is a lot of information per entity, so this is a lot of information. There can be lag spikes for all clients when a new one connects, while he receives the gamestate. During a local connection this isn't an issue, but I'd like to get some feedback on this from others, too - how bad is it during a remote connection?

Quote: "If you need any help or suggestions on networking or improving performance just let me know. What networking library are you using?"


Thanks for the offer. I'm doing pretty well with my netcode at the moment. After I get some feedback from the testing community we'll see if there is anything major I need to work out. I really want to see if the server is capable of handling a large number of connections. Of course, it'll have to be running on a network with powerful bandwidth (just like any game server) and I don't have access to one, so hopefully someone can help out in that regard.

I'm using Benjamin's "MultiSync" for my communications. Seems to do the job very nicely.

Quote: "Alright, in my case it should be the latency because I got a 3.2ghz quad core CPU so, that should be plenty "


That's a plenty strong CPU to run Solodor. If you're running the server locally you shouldn't have latency issues either, but it also needs to be remembered that you're now running two DBPro programs on the one system - the server, and the client.

You could try running the game across a LAN: Server on one machine and the client on another. That will eliminate co-processing the server and the client simultaneously. If you're running remotely, what sort of physical distance lies between you and the server? I'm curious about the relationship between distance and latency in my particular netcode. I need to know if I've got it right or if it requires optimisation.
KISTech
11
Years of Service
User Offline
Joined: 8th Feb 2008
Location: Aloha, Oregon
Posted: 19th Jan 2011 20:35 Edited at: 19th Jan 2011 20:42
Quote: " I still call SYNC to keep the internal FPS method working but I'm not calling any of the routines that update what's drawn unless then FPS is > 30"


Calling SYNC redraws the screen, whether you've updated anything or not it takes up a lot of CPU time to do that. Even using a simple timer and only calling SYNC every 33 milliseconds would improve performance.

Quote: "I really want to see if the server is capable of handling a large number of connections. Of course, it'll have to be running on a network with powerful bandwidth (just like any game server) and I don't have access to one, so hopefully someone can help out in that regard."


Once I figure out what port the game server is listening on, it will be available at 71.245.109.156. The internet connection is 25mbit/25mbit fiber.

Edit: Looks like port 29000?

Agent
14
Years of Service
User Offline
Joined: 7th Sep 2004
Location: Sydney, Australia
Posted: 20th Jan 2011 00:22
Quote: "Calling SYNC redraws the screen, whether you've updated anything or not it takes up a lot of CPU time to do that. Even using a simple timer and only calling SYNC every 33 milliseconds would improve performance."


Yeah, I realise that. The purpose of skipping the draw routines is to avoid the CPU time required to process them, which is longer than a SYNC requires. I realise it's still drawing the old screen, but obviously there's benefit in not processing all the draws every frame. Naturally, a timed SYNC would add to the benefit. I'll see about adding that to the next version.

Quote: "Once I figure out what port the game server is listening on, it will be available at 71.245.109.156. The internet connection is 25mbit/25mbit fiber."


Yes, it's port 29000. Thanks for hosting - I successfully connected to your server just now and killed a couple of NPC's. everything seems to be working perfectly. Where is the server physically located? I'm in Australia so I get a bit of latency. The 250 ping time impacted movement a little, but no more than you'd expect any game to be affected by a quarter second lag. The game is certainly still playable.

Hopefully we can get a good number of simultaneous connections to the server to load test it. 20 isn't a very high number, but I've never been able to test the server with more than 4, so this will be a good test.

If it can handle 20 connections I will do a special build to send you that lifts the connection limit for further load testing. It'll be hard just to find 20 people to connect simultaneously, but hopefully people will do some testing for me.
KISTech
11
Years of Service
User Offline
Joined: 8th Feb 2008
Location: Aloha, Oregon
Posted: 20th Jan 2011 18:18
I'm in Portland, Oregon. The computer it's running on is a 3GHz dual core with 2GB of RAM running Windows XP 32bit SP3.

I'll keep it running as long as you like. Email me when you have updates you want to test.

Phaelax
DBPro Master
15
Years of Service
User Offline
Joined: 16th Apr 2003
Location: Metropia
Posted: 20th Jan 2011 19:29 Edited at: 20th Jan 2011 19:30
I connected to Kistech's server, ran fine.
I'm not sure I really like the character movement.
Is there any way yet to use the items in the inventory?
When I reached level 2, the mana stopped regenerating automatically.
Something isn't right with the screenshots. They're distorted to match 1024x1024. And the overlay when you put your mouse over a character doesn't get saved in the screenshot either.

Also, it told me this NPC was a cat. It don't look like the other cats on the screen.


"Only the educated are free" ~Epictetus
"Imagination is more important than knowledge..." ~Einstein

Attachments

Login to view attachments
Agent
14
Years of Service
User Offline
Joined: 7th Sep 2004
Location: Sydney, Australia
Posted: 21st Jan 2011 00:33
Hi Phaelax,

The fighting will eventually be action-based, when I have an AI system to control the NPC's. The style of movement is designed with that in mind, but thanks for the feedback - if a lot of people don't like it I'll review it.

Some of the items in the inventory can be used - health and mana potions work by rightclicking them in the inventory. Bread and milk work too (they're just mini potions), and the glowing jewel works too (a super mana potion). There's no character or equipment screen yet, so you can't actually equip items right now. That's actually the next thing on the development list, and we'll have equipment based character appearance and weapon type.

I'm aware of the Level 2 regeneration-stop bug. I've got a general idea of where the bug is but haven't started tracking it yet. I'll take care of it before the next release.

I am using a very simple screenshot system: it's just a GET IMAGE to grab the whole screen area and then SAVE IMAGE to make a .jpg out of it. This makes the image the same size as the screen resolution (which is 1024x768), and if you're using a widescreen setup that resolution will mess with the aspect ratio of the screenshot when you look at it outside the game in 16:9 ratio. I don't know of a better way to take a screenshot in code. If you have any suggestions, I'm all ears!

As to the cat NPC, I think it's a bug in the random NPC generation code associated with the SPAWN command that puts clothes, hair and accessories on non-human entities. I'm not sure what's cuasing that and I haven't bothered tracking it down because by the next release I'll have NPC's generated at map-creation time rather than at runtime via the console. If I'm placing the NPC's myself in Diamond (which is the name of the map editor) then they'll be dressed properly

Just as an aside, you've posted a small screenshot of the dressed-cat bug that includes the tooltip. Perhaps I'm misunderstanding, but earlier in the post I understood you to mean that tooltips weren't showing up in your screenshots. You used the term 'overlay' - were you referring to the tooltip that says "Cat/Wildlife"? Can you clarify this for me?
Phaelax
DBPro Master
15
Years of Service
User Offline
Joined: 16th Apr 2003
Location: Metropia
Posted: 21st Jan 2011 08:30
The picture I posted was created by posting what I captured from the clipboard into photoshop. Your auto-generated screenshot excluded that tooltip. I don't know why SAVE IMAGE would change the aspect ratio.

"Only the educated are free" ~Epictetus
"Imagination is more important than knowledge..." ~Einstein
bergice
11
Years of Service
User Offline
Joined: 5th Jun 2007
Location: Oslo,Norway
Posted: 21st Jan 2011 09:03
I am wowed

Was this made with dark basic?

51fa1db0ec7c4af52d93a6f5d0e86bc5

Agent
14
Years of Service
User Offline
Joined: 7th Sep 2004
Location: Sydney, Australia
Posted: 21st Jan 2011 13:27
I'm a bit puzzled myself, Phaelax. If anybody has a better way to take screenshots at codelevel I'd love to hear suggestions, but even if I can't properly explain why, SAVE IMAGE outputs an image that looks different, more squashed, than it did in game. I do run a 16:10 aspect ratio screen, so perhaps it's just me.

I've located the cause of the missing tooltip in screenshots. The code that looks for the printscreen keystate occurs immediately before the code that draws the tooltip, which means the map tiles and the entities have drawn over the top of the old tooltip at the point in mainloop iteration that the screen is taken. A simple transposition of the two relevant lines of code (which were right next to each other anyway) has brought tooltips back to screenshots.

Bergice, yes, it's written entirely in Dark Basic Pro, including all the supporting tools like the world editor and the server software. Total development time thus far has been about six months.
TheComet
11
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 22nd Jan 2011 21:17
Quote: "I'm a bit puzzled myself, Phaelax. If anybody has a better way to take screenshots at codelevel I'd love to hear suggestions, but even if I can't properly explain why, SAVE IMAGE outputs an image that looks different, more squashed, than it did in game. I do run a 16:10 aspect ratio screen, so perhaps it's just me."


I believe you have to create the image with a flag of one. So if you get the image from the screen, do it like this:

get image 0,0,width,height,1

Then save image will save it correctly

TheComet

Agent
14
Years of Service
User Offline
Joined: 7th Sep 2004
Location: Sydney, Australia
Posted: 23rd Jan 2011 02:22
What a newbie mistake! Of course you need the texture flag. I thought I had already applied it, but it turns out I hadn't. That has fixed the problem, and I'm seeing perfect quality undistorted screenshots taken internally now.

Thanks Comet!

Things I'm working on now:

- Upgrading Diamond to allow placement of NPC's at map-creation time.

- Conversation system to talk to friendly NPC's.

- Character equipment and stats screen to equip items.

- More weapon types than just the sword and the spear.

- Larger array of items (there's only 22 different items in the game atm).

- A larger test world so that a little bit of exploration can be done even at this early stage.

- Spellcasting system with the traditional bar filling up before the spell fires.
Agent
14
Years of Service
User Offline
Joined: 7th Sep 2004
Location: Sydney, Australia
Posted: 23rd Jan 2011 02:43
Oh, a couple of things I forgot to mention originally that work in the current alpha release:

If you want to try out PvP combat, you can type /FACTION 2 to switch to PvP mode. Players in PvP mode are friendly with players in PvE mode (default) and hostile to other players in PvP mode. This means that both players need to switch to PvP mode before either one can hurt the other. Type /FACTION 1 to switch back to PvE mode. Other faction ID's are possible, but not intended - you'll end up being a Wildlife or a Townsfolk or a Monster or something

If you hadn't noticed, while you can't swing your sword at neutral or friendly NPC's, you can still shoot them with your fireballs and they won't fight back. You can score some free items that way, but no XP. At a later date I'm going to add a system that will make neutral NPC's fight back if you attack them. That will make the Angels especially dangerous!

Can anybody try to convince a few friends to join them on the server to help load test the server? KisTech's server is still running on 71.245.109.156 and will accept up to 20 simultaneous connections. I *really* want to load test this server to see if my netcode is up to snuff for an MMO.

Any feedback is always welcome!
KISTech
11
Years of Service
User Offline
Joined: 8th Feb 2008
Location: Aloha, Oregon
Posted: 23rd Jan 2011 18:06
I spawned some more entities in area 2 on the server for anyone that's interested.

Connect to 71.245.109.156

Agent
14
Years of Service
User Offline
Joined: 7th Sep 2004
Location: Sydney, Australia
Posted: 25th Jan 2011 02:20
Hey everyone,

Has anyone been connecting to the server? Have we had any simultaneous connections yet?
KISTech
11
Years of Service
User Offline
Joined: 8th Feb 2008
Location: Aloha, Oregon
Posted: 25th Jan 2011 03:00
Doesn't look like there were any multiple connections on the one I've got running.

Agent
14
Years of Service
User Offline
Joined: 7th Sep 2004
Location: Sydney, Australia
Posted: 25th Jan 2011 11:46
Not to worry, the game isn't all that interesting right now anyway, as it's just a tech demo with a couple of small areas to demonstrate the engine. The next release will have much more to do.

It'd be nice if you could keep the server running so that I can use it for my own testing and with people I know. If there's not a lot of connections then it's not costing you any bandwidth anyway
KISTech
11
Years of Service
User Offline
Joined: 8th Feb 2008
Location: Aloha, Oregon
Posted: 25th Jan 2011 18:12
Bring on the testers. My game is still in early Alpha and there's no one playing it right now. Besides, I seriously doubt either of us are going to saturate a 25mbit fiber link with these games just yet.

Agent
14
Years of Service
User Offline
Joined: 7th Sep 2004
Location: Sydney, Australia
Posted: 27th Jan 2011 07:17
Not even close

Has anyone else checked out the game?
TheeLord
11
Years of Service
User Offline
Joined: 23rd Jan 2008
Location: Chicago
Posted: 30th Jan 2011 17:32
How come you don't host this yourself and have people connect to it?? I was about to download and test it for you, but realized I would be only testing it in my LAN.. Do some 1 to 1 NAT on your router and set it up there and let us know.

Looks very good though from the Screenshots! Good work! Keep it up man.
Agent
14
Years of Service
User Offline
Joined: 7th Sep 2004
Location: Sydney, Australia
Posted: 31st Jan 2011 05:25
Yes, you'd be testing it on your own LAN if you downloaded it and followed the instructions as per the original post.

I do have a server running, thanks to KISTech who is hosting at 71.245.109.156 for testing purposes. Give that a go!
Agent
14
Years of Service
User Offline
Joined: 7th Sep 2004
Location: Sydney, Australia
Posted: 13th Feb 2011 07:15
Work continues on Solodor. The Character screen is the current focus of attention, allowing weapons and armor to be equipped, along with the usual assortment of special items like amulets and rings.

I've also fixed a couple of bugs like mana and health regen stopping after a levelup.

KISTech's server seems to be down at the moment, but that's ok - I'm still looking for feedback and bug reports from players. I know there's not much to do in the little test world right now, but the Stage 2 demo is coming soon and will have more stuff to check out.
Hassan
9
Years of Service
User Offline
Joined: 4th May 2009
Location: <script> alert(1); </script>
Posted: 13th Feb 2011 18:17 Edited at: 13th Feb 2011 18:18
it looks good



Agent
14
Years of Service
User Offline
Joined: 7th Sep 2004
Location: Sydney, Australia
Posted: 14th Feb 2011 00:41 Edited at: 14th Feb 2011 00:44
I've borrowed a couple of resources for the moment (yes, all of the spell and item icons are from World of Warcraft) until I can acquire the services of an artist to create original material. It's still too early in the project for that though. I was really just demonstrating to myself that I am capable of creating an MMORPG. I've made games in just about every genre I can think of except that I've never attempted anything in the RPG genre before, and I am now at the stage in development where I know I can do it. I haven't finished yet (not by a long shot), but the stuff that I wasn't sure I'd be able to do (stable netcode and a working mass client/server model) has already been successful. Now that I've got to this stage, I am very interested in my own game - it looks fun! So I am strongly motivated to continue work and see if I can build a small community of people who like to play.

Right now I am working on the character screen, where your stats and equipment are displayed and you can equip and unequip armor, weapons and special items, as well as an NPC dialog system that works similarly to the Neverwinter Nights franchise: NPC speaks a wall of text, and you get to choose from several possible responses, leading to a new page of "speech" from the NPC. I like this system as it's very flexible and allows for in-depth conversations for storytelling purposes.

I am also going to develop the spellcasting system before the next release. Right now there is only one spell, the fireball, that can be spammed all over the shop by right clicking furiously. I intend to make spellcasting a little more like WoW and Guild Wars, in which you are rooted to the spot while charging up a spell, and when it fires there is a cooldown until you can throw the same spell again. I'll also be adding a couple more spells and possibly making the actionbar/hotbar functional (though this isn't a priority just yet).

I thought about doing away with the Mana system altogether and just using cooldowns on spells to represent the limit for casters, but I haven't decided yet. Any thoughts on this?

Anyway, after all of that is done, I will want to squash a bug I've called the Spawn Location Bug. I might stumble across this one during development of the other features, but it's been bothering me for a while. When you first connect to the server, you're supposed to start in the middle of the spawn room. The first time you connect, that's what happens, but if you disconnect and then reconnect, for some reason you'll appear at a random location in that first zone, sometimes out in the black void instead of smack in the middle. It only happens if it's not the first time you've connected to the same server. I haven't figured out what's causing that, but it needs to be fixed.

Once all that is done, I'll be building a larger world to explore, for something to do in the game besides walking around one house and a hill! I'll also probably raise the maximum connection limit for the server. With that completed, I'll feel ready for another release. No ETA yet, I have real life and a full time job to worry about as well

Please continue to try out the game and let me know what you think. I welcome comments, suggestions, questions and death threats.
KISTech
11
Years of Service
User Offline
Joined: 8th Feb 2008
Location: Aloha, Oregon
Posted: 14th Feb 2011 06:18 Edited at: 14th Feb 2011 06:19
Also, the server is back up at 71.245.109.156.

I had to reboot the server a few days ago and forgot to restart the server app.

If you want/need more entities added just email me.

DBer
11
Years of Service
User Offline
Joined: 16th Mar 2007
Location:
Posted: 14th Feb 2011 10:38
Hi Agent,
I tested the game on a local server yesterday. Right now I've been testing it again on KISTech's server and it run fine. Regarding the performance, speed and overall gameplay, it felt quite similar compared to my local test Sadly, nowbody else was online (would I see them roaming around when they're conmnected?).

One thing I noticed was when the fireball hits somthing, the collision isn't very precise. Running the game on KISTech's server, it was ok (the fireball just hit the ground in front of the enemy; collision radius maybe 1 tile).
Running in local mode it seemed there were invisible walls and obstacles I could walk through but the fireball collided with. Mostly it appears when I throw it upwards (most time independent from the location I'm staying in). Sometimes it explode right in front of me (maybe I was just staying in an wall^^). I don't think there was an invisible enemy because of no hit indicator I could spot.


Good luck with this project! As I'm also programming some sort of online multiplayer mode for Lab Rush I know how hard it is.

Agent
14
Years of Service
User Offline
Joined: 7th Sep 2004
Location: Sydney, Australia
Posted: 14th Feb 2011 17:23
Thanks KISTech!

The fireball should only explode when it hits an entity or when it hits something you can't walk through - this includes water. The fireball will also explode if it hits the border of the map, such as firing through the transition between Shadaah Forest and West Cape, or firing out the door of the house from inside. It shouldn't explode at any other time.

Projectile collision is determined by the server, which sends a "blow this projectile up" signal to clients when it hits something. If you are a little out of sync with the server, the fireball might hit something on the server, which sends a signal to explode the projectile on your client, where it might be lagging a little behind. Lag-sync disparity can occur when your framerate drops below 30 (type /debug to check fps, ping, and a few other items that may or may not make sense). Sync is corrected by the entity interpolation routine when you stop moving, but if your framerate is low and you're a little behind the server then projectiles might seem to explode a little too early. They're still hitting at the right time on the server though, where it counts.

Thanks for the well-wishes. You're right, it is very complicated getting any sort of stable netcode operational, let alone something as involved as an MMORPG! Things are coming along nicely though, I think!
KISTech
11
Years of Service
User Offline
Joined: 8th Feb 2008
Location: Aloha, Oregon
Posted: 14th Feb 2011 17:57
Quote: "You're right, it is very complicated getting any sort of stable netcode operational, let alone something as involved as an MMORPG!"


Definitely.

cyril
11
Years of Service
User Offline
Joined: 6th Aug 2007
Location: 7 miles away from big ben
Posted: 16th Feb 2011 21:31
Am not a total expert in knowing wherever it is possible in DBP to use a p2p and p2s system at the same time. But I do know most mmo games have to make a compromise between speed and cheat prevention.

Unless you are strictly using p2s2p fully, you would want to make sure that the bare minimum amount of game logic is sent between the server and the player as possible. and most of it is sent between the players in a direct p2p connection. Since mmorpg's are most likely to be separated into zones, the server will mainly to be used to make new connection with the players in the next zone when a player is going from zone to zone. While this is the fastest method there is the problem of cheat prevention!

The easiest way to solve most cheating is to send the start position, power/defence stats, and other important character information first from the server to all other players and then send the keystrokes and mouse clicks, and let the other players' computer do the position, collision and attack calculation as well.

On top of this you can sync kill confirmations for NPCs/players through a simple agreement system, because position and attack calculation are done with the same values, if the calculation result in one player obtaining a kill, the other players should obtain the same result, if more than 1/2 or 3/4 of the players' computer disagrees the server will deny the kill and the normal exp and in game money is not given. Of course ping can cause desyncing too, if a player falls behind so its best to allow some time for them to confirm kills as well something like 1000ms from the moment the server requested all the player's clients to confirm a player or NPC kill.

In short, if you let the other players' computer do the calculation as well, if someone is cheating they will be desync and the server should reject any action the cheating player does since the agreement system will notify the server, you can also use this to kick cheaters too.

Important server handled features such as NPC and item spawn time, item effects and power numbers,NPC/player kills,item pickups, exp, in game cash, inventory&shop, and login and connection building must be server sided. but now am stating the obvious.

And player position, attack hits, collision, enemy action, can be shared between the players so they are all in sync.

The major drawback is when there is only one player in the zone there would be no other client to do the calculation so they can be compared, which means you either have to let them go unnoticed, or pass the calculation through the server, but this will eat up some server speed.

Sadly this system tends to work better for Online shooters with a dedicated Server, but could work with a few modification.
As for the game I might try it in the weekend and report back then.
Agent
14
Years of Service
User Offline
Joined: 7th Sep 2004
Location: Sydney, Australia
Posted: 16th Mar 2011 20:14
Hello again everyone,

Just a general update on what's happening with Solodor. The Character Sheet is now fully functional, where you can see all your stats ad equip and unequip the gear you've collected along your travels. Equipment doesn't have any effect yet, so realistically at this stage the equipment page just functions as additional inventory space (for equipment that doesn't do anything - yet). I've upgraded the appearance of the inventory; icons are spaced out now over a translucent background rather than being jammed tightly together over a black blocky background. Looks very slick now.

I've increased the maximum number of server connections to 1000, which seems like far more than there are people watching development of the game at the moment, but it might help with load testing (the previous connection limit of 20 got in the way for some people).

I'm working on the conversation system at the moment, which is still in its infancy. More info as development continues.
TheeLord
11
Years of Service
User Offline
Joined: 23rd Jan 2008
Location: Chicago
Posted: 18th Mar 2011 06:19
Is KIStech's server still online? I will connect and test it out if so. Does he have the current build?
KISTech
11
Years of Service
User Offline
Joined: 8th Feb 2008
Location: Aloha, Oregon
Posted: 18th Mar 2011 18:17
I don't have the current server, and no one had connected since Feb 16th, so I shut it off for the moment.

Happy to put it back up with the current build whenever you like.

Agent
14
Years of Service
User Offline
Joined: 7th Sep 2004
Location: Sydney, Australia
Posted: 18th Mar 2011 22:00
Thanks KISTech. For the time being I won't be needing the server, but perhaps when I release the next Alpha you won't mind hosting a little more?

For the record, the server software is included in the download, so you can host your own server locally and connect to it to test the game out - this was in fact the original idea.

Where is the machine you were hosting the server on, KISTech? Physically in the world, I mean, what country and city? I'm curious about ping times, it was a quarter second from where I live in Sydney, Australia.

Still a couple of systems left to build before I release the next Alpha. I want to have equipment functioning, the conversation system at least functional if not complete, a larger test world to explore, and the basics of a skill system in place (several spells, a special melee attack or two, etc).
KISTech
11
Years of Service
User Offline
Joined: 8th Feb 2008
Location: Aloha, Oregon
Posted: 18th Mar 2011 22:41
I can download the latest build. Forgot it was included..

I'm in Portland, Oregon USA.

GIDustin
10
Years of Service
User Offline
Joined: 30th May 2008
Location:
Posted: 20th Mar 2011 08:40
Agent,

I am glad to finally see your project. I played around for while tonight and it seems really stable at the moment. Can't wait for it to be finished.

I was kind of excited when I saw the screenshots because I don't think there are enough 2D MMOs out there, but then I read that it will be a level-up battle / spell casting type. If it was more of a class-less skill based MMO like "MMO Factions" is turning out to be, then I would be on board to help as that is my dream game at the moment.

Either way, I plan to watch this project closely. Good work so far!

Agent
14
Years of Service
User Offline
Joined: 7th Sep 2004
Location: Sydney, Australia
Posted: 21st Mar 2011 18:46 Edited at: 21st Mar 2011 18:48
Hi Dustin,

Thanks for your comments! I am working hard trying to track down a particularly annoying bug at the moment, one that doesn't exist in the alpha you're playing but has surfaced in the current working build. It's costing me a lot of hair...

There will be leveling up, as well as live-action battle and spellcasting (as opposed to turn-based battle). These things are already visible in the alpha.

As to classes, Solodor is indeed a classless RPG. I am 95% sure I will be going with the following skill system:

Everybody starts with no skills at all, at level 1, and has only the ability to swing a melee weapon or use inventory items to make kills and complete quests. At each levelup, the player will gain a certain number of skill points, say 5. Those skill points will function as a form of currency, used to purchase abilities from various trainers around the world. So, on the player's first level up, he can go off and find a wizard who will teach him the fireball spell. The fireball spell might cost, say, 2 skill points. So the player learns the fireball spell from the wizard. He's got three points left. He also wants to learn an ice bolt spell, but this wizard doesn't train that spell. Off you go to find the wizard who does, spending another two skill points to acquire the spell. Perhaps a special melee strike is available for one skill point from a military sergeant who is training recruits at the army base on the other side of the world. Off you go in search of that trainer, and spend your last skill point to learn this new skill.

No classes, no restrictions. You can learn any skill you want, from any "discipline" (like magic casting, sword swinging, lock breaking, etc), at any time, as long as you can find the person who can teach you the skill you want, and you have enough skill points. Perhaps some of the most powerful skills in the game will be trained by someone hidden a long way down a difficult dungeon and cost 15 skill points, requiring the player to level up several times to gain the needed skill points, and then fight their way through tough enemies just to get trained in the skill.

In this way you can build your own class, specialising in a particular discipline or branching out and becoming a jack of all trades. If I were to introduce a level cap, limiting the number of skill points you can earn and preventing you from mastering all skills, you'd have to pick and choose and be very careful which skills you learn, because once you've hit the level cap that'll be it, no more skills can be learned.

I think this will be a very flexible system and I haven't seen anything like it in other RPG's.

Any comments?

Login to post a reply

Server time is: 2019-02-20 18:36:40
Your offset time is: 2019-02-20 18:36:40