- Java is easy to manipulate (in my opinion)
maybe, me for example, more like a C++ coding paradigm than Java or .Net based, but that is not point. Try to make them good!
- Easily integrated with MSSQL and MySQL (again, my opinion)
You may include only MySQL support, that is really enough for emulator, MySQL supported fine on Windows - based Servers too.
- More possibilities for fancy stuff, depending on how it's done (silly example, look at runescape)
- Very Flexible
what do you mean? Any example of customizations please. MuOnline is - RPG, not a MMORPG. Like a Diablo and etc. If we imagine a game-design concept of MuOnline, best & right way - only add features in "MuOnline" style... Dont need add features like a "build you own house" or "dungeons" like WoW or something else.
- Universal (can be played/ran on every OS that has JAVA installed)
Multiplatform... hmm that is really hard task, becouse a Lin/Mac/Win have a different API (for simple example - try to implement a cursor(colored and etc) for all systems, include linux... For linux, you need a really low-level API for draw that.)
- More CPU than GPU dependent. (depends on graphics used)
CUDA? You solution? That is really not simple, i will ask that again - you need a low-lewel coding again.
- Everything, including graphics can be done professionally with FREE tools (i.e Blender (graphics), Eclipse) (same applies for the rest of the programming languages, I am aware)
- (Applies to all languages) Properly optimized, It can take minimal ressources to output some very fancy visuals.
Hmm, that is good about graphics. (i mean tools). About resource usage - how you test them? Where testing.log, or something for proof? My imho here - the best way for implement this - store (models & their textures) in packed binary format.
Well, the idea is great, but need to know a more technical details for talking about that. Whats already done? Coding standarts? How about (for example) Maps code? Char movement algorithm? Patchfinding?(when player left-click by mouse on minimap for example, and move to that location) (you may use A* algorithm, becouse movements in Mu - 2D, have a only X,Y). Do you have a working plan, todo's, repository, tracking system, etc? How you want coordinate the project?
At this time - so much questions... more than answers. Keep it up! and goodluck!
Thank you for your interest!
Here are my explanations:
When I said adding fancy stuff, I didn't mean building a house, or Dungeons (But why not, if not making EXACT copy of mu online?)
if we look at the regular client, we can see that the glow and effects (power slash for MG, twisting Slash for DK/BK) can cause extreme lag, When I gave Runescape as an example, I didn't exactly want everyone to look at the player-specific houses/dungeons, but focus towards the effects and how they are compressed to extremely small form and extracted and translated by the client. (proof is very simple, When I am on RS. I am monitoring my data, for 1 hour, on maxed everying, it uses about 17 mb. (~17.3-17.5 mb) Which for an MMO is extremely good! I am talking about chat, commands transfer for fireworks, coordinates, etc, etc. In my opinion that is EXTREMELY good!
When you mention dungeons, I was thinking exactly that actually, Script user specific dungeons that can be joined by parties, but are unlimited. like always re-spawn mobs and have good loot at the bosses. (that will eliminate spot crowding problem, but maybe add a time limit to remove danger of dungeon abuse for epic loot)
for Multi System, Java is Java. it's universal. example given: download (JDownlader) scripted completely in JAVA. no matter which release you download, Unix, Mac or Win, it will run in Java environment (used .jar files). so, while host system has java environment installed, game can be played with little to no changes in the code.
for Blender, I do not have any logs, I am basing my conclusion on observations for games that I have played with players. A 3D or 2D model created in blender (for example, OMSI Bus simulator gets their graphics from Blender and they are very close to realistic ( Need work on colours and contrast) but some 3D animator created a model with Unity engine and it was 7x bigger than 3D model with Blender.(from 23mb in Blender to 158mb in Unity) There was nice visual difference, but since I want this game to be from high perspective, why bother with High quality models when user won't be able to see?
When you ask me why more CPU than GPU dependent. My observations are the following:
My teachers taught me, JAVA is very CPU dependent because it's always doing mathematical operations. Assign item A to item B, move this there, that here, etc, etc
GPU can join the work, by helping calculations with CPU, I read on AMD and nVidia website they have the ability to share load from CPU.
The graphics of MU are not that big, maybe 100-150 megabyte for all the graphics to pre-load to virtual memory and keep there.
the rest will be job of the CPU
I will now answer your question about movement.
Originally I wanted to keep the original 2-Axis X-Y movement. And I Still do. It's close to perfect the way it is. However Maybe work on the maps. Make them bigger/smaller (to decide)?
Todo's are a lot.
1st step is to find people who are interested to work on this.
I have already created the Character Constructor methods, but it takes me about 2-3 days to create a constructor, then it's copy/paste because the majority of stuff repeat themselves.
example:
create a constructor for Dark Knight
str, agi, vit, ene, (remember command is only DL)
BUT there is also
Defense, Def Rating, Atk Speed, MoveSpeed, dodge rating, ManaPerLvl, HpPerLvl, HpRegen, ManaRegen, HpRegenLvl, ManaRegenLvl,
then you add
% application of weapon damage to normal character DMG
after that is all completed, you copy/paste for the rest of the 5 chars; SM, MG, ELF, DL(here make small edit and add command) and Summoner.
I have done that
I have constructed maps, I have coordinates system, and some Items and sets are completed. in total its take me 1 month to do all that.
BUT remember, until now I have no GUI. I will do separate job. I need to make .jar file that calls resolution file which constructs window. then I need to work on conversion from .OZT to .jpg or .png files, find someone who is interested to compress to binary lvl to save space
THEN
if I see browser edition is too big, we have to RE-create the whole client with compressed to binary lvl every single file!
After that.
Once we create GUI interface and be able to login, I will work on coordinate system to show exact coordinate, it's simple really, portray the map as 2D array and according to where your character is found, just display the coordinate with a simple counter
example:
int[][] coordinateSystem = new int[255][255] //size of map is ((255*255)*1000) create a realistic size to map. (edit by need if too large)
for( int i = 0; i < coordinateSystem.length, i++)
{
for( int i2 = 0; i2 < coordinateSystem[].length; i2++
{
if (character) //if character boolean = true (which means character is present in this spot)
SOPln(Arrays.toString(coordinatesSystem[i2])); //print position to where the character boolean is present on the map.
}
}
This is not the exact algorithm, but it will follow that logic.
I work on my code, I make it always clean. If too much comments or code doesn't work properly, I erase and start over.
I want perfection and I aim for it, always.
Right now I am working on an linux system, remotely logged in my server at home via SSH so I can work on this always and if my laptop HDD crash I won't lose sources.
I will create a repository and pack an installer, but that won't be any time soon because I just barely start the work. if I am going to do alone, I cannot guarantee before the next 3 to 5 years because I want to guarantee GOOD game with excellent code to have even weaker computers be able to play this.