I know its a short run but I decided it's probably best if I don't try to make games these big. My mind is sorta screwy and I find it hard to stick on one thing for a period of time.
So here is what I made during those two or so weeks. The engine is based off of my old game, Zelda Online. Zelda Online, in turn, was created using Blaxun's MMO engine. It is one of the older versions, so it doesn't contain a thing or two.
Points of Interest
- Very efficient engine (or so I would like to thing). One object/room server and one room client with low instance count.
- Rooms and movement handled with ds_grid functions.
- Rooms can be dynamically created by server.
- 2D based 3D graphics
- mySQL support
This engine is meant to be used by more experienced players. It shoots for efficiency rather than being easy to understand. Therefore, for newcomers to the MMO creation world, I would suggest Blaxun's engine, or something similar.
Screenshot - Download
Things to Note
- Rooms are handled in ds_grid's. Passable ground is a 0, walls are a 1, and water is a 2. Rooms therefore, are not changed by changing a room, but changing the grid. Visuals are handled by a different object (especially obj_dungeon, which reads the grid and creates a visual from it).
- Dungeons are meant to be entered as a party. Currently, the system creates a new dungeon for every person that enters a room. While the dungeons are considered seperate, and each has their own layout setup, the engine currently has no support for players being in different dungeons. This means that additional checks would need to be made to tell if players' dungeon id's differ when checking rooms, along with floor numbers. It may be as simple an edit as that, I do not know.
- The server, like Zelda Online, was originally programmed to function with a mySQL database. Due to this being an open source release now, I have commentated out the SQL function of the server and instead added .ini saving, much like Blaxun's original example.
- pkm_id can be changed to either 4 (salamander) or 7 (turtle). The turtle can walk in water (although I'm not sure why a salamander couldn't...). Be sure to change this id in both the case_msg_login event on the server and the Create event of obj_self on the client for it to work properly.
- I ask you give me credit if your own open source of this project. Else, it is entirely up to you.
- Blaxun created the example I indirectly used to create this.
- The project uses 39DLL, Ultimate 3D, and GMSQL
I hope this can be of help to someone... maybe? I will try to help with questions wherever possible, but I make no promises.