JohnCaruso.ca
New design... work in progress.

Completely Random (and without warrant... or warranty)

Rates
Copy/Paste Killer
TempCopy
Infinite Comic
Amazon .com/.ca Comparator

//MMO.exe

This MMO (Massively Multiplayer Online) something or other idea I've got here is a work in progress. First I do a little design then I do a little coding, then I take a huge break and come back to it with a fresh mind for some more planning and coding.

Read the posts to figure out what stage I'm at and what the current features are. You'll also be able to find the executables to connect and play!

So far the software requirements are:
- DirectX Runtime
- Windows Update. You will have to choose the 'Custom' button, then look around in both the "High Priority" and "Software, Optional" sections (left of the screen) to find .Net Framework 1.1 . If you cannot find it then you most likely already have it (YAY!)

As for hardware requirements... I'm not too sure. I do know that you need a video card that can support DirectX 9.0c.

The complete project log is below... archived from my regular blog.

MMO// Design Decisions
I am at the point now with this little project where I have to decide where to go to next...



I've got 3 areas that need to be addressed, and I can't really figure out which is more important.



1) Figure out a faster way of sending messages back and forth between the server and clients. I already noticed some slowdown when only 2 users are on the server, and all that is being passed is new positions. Maybe I can put a timer on the server threads to only update everyone else every x milliseconds or something, instead of every time a message is received... OR see what I added since I last made a change to introduce all this LAG. Either way, I think the server is doing too much work per client somewhere. I don't think its a client-side issue.



2) Add chat capability to the client. The server already has the ability to pass chat messages back and forth, I just need to get the clients to be able to accept chat input from the keyboard and display all conversations in the window somewhere.



3) Better player movement communication. I need to have more of a 3 dimensional way of communicating how the user is moving. Right now its just forwards/backwards and left/right movements. I need to have a vertical movement direction information as well as rotational.
MMO// DXTest Client
I am starting to wish I created a new blog category for this project... but it is just so much more compelling working on this instead of doing stupid houskeeping stuff for my website.



I am ready to provide the test client to the world!



You will need to have the latest DirectX runtimes installed as well as the .Net Framework 1.1. You can download them below:



- DirectX Runtime

- Windows Update. You will have to choose the 'Custom' button, then look around in both the "High Priority" and "Software, Optional" sections (left of the screen) to find .Net Framework 1.1 . If you cannot find it then you most likely already have it (YAY!)



Once you have downloaded and installed both of those components you can download the following Zip file.



DXTest.zip.



Then extract it anywhere and double click to run it. I can't guarantee that I'll have the server running, so you might get an error about a Socket Exception. Just close down the client if that happens. Then check to see if I'm logged into MSN (you can find my info in the 'About Me' section) and ask me to start the server and we'll test this baby out together!



For anyone who is going to run my lovely test client THANK YOU SO MUCH!



Nothing bad should happen to your computer as a result of running this program as it doesn't modify any files or other contents of your PC. All it does it make a connection to the internet, so you may have to allow it access if you are using a software firewall.
MMO// SUCCESS!!!
WAHOOOOOOOOOO! YEAH!



I DID IT!!



"Did what?" you might ask... IT!!!



I made a HUGE step today in my DirectX Game/Server Project! I was able to have multiple clients connected to the server, moving their little triangles around on the screen, and the new positions were being updated on each client screen!



So basically I had me and a friend of mine swarming what looked like little flies (really they were just tiny triangles) around on a screen.... all being done by sending messages OVER THE INTERNET!



Just the sight of those little triangles moving around all by themselves (well one was in control by me) was enough to put a HUGE smile on my face!!



I'll make the client available on this site once I fix a few bugs with it (triangles not disappearing once a user has disconnected and the game not giving up control of the keyboard when it doesn't have focus).



Very VERY exciting day for me!!!
MMO// Making Progress on DirectX Project
I made the first steps towards a somewhat fully functioning 3D online multiplayer 'game' yesterday.



I got the basic framework for a game engine going, and I was able to display a tri-coloured triangle on screen in 3D world coordinates.



I also got it to remotely accept commands to move the triangle around on screen using my chat server and the java chat client to send the movement instructions.



Now I've just got to modify the engine to create a triangle for each user that is logged in and to isolate the instructions to only move the triangle that belongs to the user who owns the triangle. And then I'll be able to make my box world that I described 2 or 3 posts ago!



But before that can happen I'll have to figure out how to structure the commands that the clients will be sending to the server.



This whole thing is really starting to sound like A HELL OF A LOT OF FUN. And a year ago I'd probably be working night and day on it. But lately my hands/wrists haven't been feeling so comfortable. So I'm taking long breaks from my keyboard and mouse to help alleviate the discomfort.
MMO// Yay For Standards Compliant Sockets!
Java is awesome, C# is way sexier on Windows PCs, and using sockets between the two is EFFORTLESS!

I just re-wrote my Java chat server in C#. It seemed easier to do than to try to get C# code to call Java code. So as of right now I am reviving my server project... but I don't know what it is going to be exactly, which is why I'm calling it the "What Can I Do With a Server" project.

The guy who does one of the blogs that I read is writing a MUD (MultiUser Dungeon - Google it if you still don't know what it is). I thought that might be fun to do, but kind of lame for me to just do what someone else is doing, especially because he's already spoken about all the design problems and how to fix them. So it wouldn't be any fun for me... just boring old implementation.

I am thinking of just making a crappy little 3D world (and by world I mean a very tiny boxed room) where people can walk around (by walk around I mean move your box representation of yourself around with the arrow keys) and chat with people. This will let me get into both socket programming AND polish off my OpenGL skills. I might even substitute that with DirectX if it seems more feasible. And after that is done I should have a great framework for what has been my motivation to get through my Computer Science degree... making an MMORPG. Thank You DRANSIK!