World Of Warcraft The Ruins Of Monster WoW menu

Shout-Out

User Tag List

Page 1 of 2 12 LastLast
Results 1 to 15 of 29
  1. #1
    dlablo's Avatar Active Member Authenticator enabled
    Reputation
    77
    Join Date
    Nov 2014
    Posts
    102
    Thanks G/R
    13/20
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    World Of Warcraft The Ruins Of Monster WoW




    World Of Warcraft - The Ruins Of Monster WoW
    I'm proud to present you a new World Of Warcraft created by me. No, that's not a private server or some kind of self-advertisement.
    This is a game i created from scratch, using my own game engine that i developed specially for this project.
    The game is going to be 2D, but kinda more like semi-2D.


    Download Link - Games - DiabloSoft

    System Requirements
    Any CPU
    300 MB RAM
    Video Card with at least 50 MB VRAM memory.
    NET Framework 4.8
    Windows 7 and above
    ( Basically it can run even on the lowest end PCs, if they can install NET Framework 4.8 )
    ( Low end PC will only have longer loading time, but no FPS drop )


    What is so special about it?
    Well, the fact that i created my own game engine just to create that game is not something so amazing.
    What is amazing is that this game works just like how the original WoW works. The engine was built to work similar to how the original WoW works.
    Since i am also a hacker who created multiple pqr bots, esp hacks and so on, i know what WoW's data structures/functions look like and how they work.
    So i did my best do make the stuff as similar as possible. Well, except for the online part.
    The game is going to be offline based and everybody will be abe to download it for free.




    Early Development pictures
    1. Main Menu




    2. Settings




    3. In-Game



    Database

    So, the game has database just like original WoW. Since this game is going to be offline, the database is stored as Json files.
    The game also has a level editor that allows me to use all objects located in the database. All spells are also located in the database.
    The spell editor looks like so.




    Physics

    Early i mentioned that the game is going to be semi-2D. What i mean by that is that you will be able to move your character in all directions. Up, down, left, right, even diagonally. So the game might feel like 3D to some point, but technically it is a 2D game. Now let me explain about the collision part.




    The yellow lines and rectangles represent collision area. As you can see both my character and the NPC have collision rectangles. This means i cant go trough that NPC. I can push it away if i walk towards it, but i can't collide wiith it. And also all objects are ordered by their Y position. This means, if i am behind and NPC, i will be displayed behind the npc. This is something like Z buffer in a 3D engine. The character / npcs will not be able to get off the main road. The yellow lines represent the collision of the main road of the map.



    When you cast a spell, and your target is behind a wall/object, you will hit the object instead, and the target will not take damage. How do you target someone? Well, the game auto targets the NPC's for you, so don't worry about that. Your target is allways the closest enemy.


    Video (Early development sound test)



    Release Date

    For now, i will skip the deep details. Otherwise it will not be interesting when you finally get to play it. I will just say that i will release this project this november.

    Engine full features


    Programming language - C#
    Total lines of code - 7123
    1. Collision detection(particles, props, roads, npcs, characters).
    - Any object that has collision properties, can collide with any other object that has collision properties.
    - Missiles(They are usually created when spell cast is finished) die when they collide with object and apply dmg/stun,ect.
    - If a missile hits a prop instead of it's target, the missile dies without the target taking any damage.


    2. Spell casting (character, npc, boss).
    - Spells can apply damage, stun, heal and absorb damage.
    - Spells have cooldowns.
    - Some spells have cast time.
    - If you take damage while you cast, cast time is increased(just like in WoW).


    3. Particle/Missile handling (Controls the position/velocity of a particle/missile/buff).
    - Particles are casted by spells.
    - Each particle has it's own spawn/idle/death animation.
    - Particles are only 2 types, buff particles and missile particles.
    - Buff particles stay on the target(just for visual effect, like ice barrier for example).
    - Missile particles(like fireball for example) keep moving towards the target until they collide with it.


    4. Movement.
    - The engine uses all direction movements(up,down,left,right,diagonally).

    5. Maps.
    - Each map contains certain road area where the characters/npcs/bosses cannot escape.
    - Each map contains all IDS of all objects that need to be loaded in the map upon loading.
    - Each map has it's own skybox or animated skybox.



    6. AI (NPCs/Bosses).
    - NPCs/Bosses can move in all directions just like the main character.
    - NPCs/Bosses are the same object type just like the main character.
    - NPCs/Bosses can cast spells in all kind of situations, depending on what spells they have.


    7. Animations.
    - Each NPC/Boss/Character has it's own idle,walk,spellcast animations(each animation is made out of exactly 10 frames).
    - Animated skyboxes.
    - Animated Particles/Missiles.
    - Animated UI Backgrounds.


    8. Sound Manager
    - Fire and forget functionality(play a sound and dispose of the resource after it is played).
    - Play sound after finishing spell cast.
    - Play sound after missile hits the target.
    - Play/Change/Stop the current music(the music is allways played in a loop, doesn't matter if you are in main menu or in game).


    9. Resolution management
    - The UI and all images are responsive for all window sizes and resolutions.
    - The font size is calculated for the relevant resolution so there will be no font size difference between different resolutions.


    10. Red text notification
    - Error messages are displayed at the middle top position of the screen via centered text(just like in wow).
    - The error messages are from the type of (You can't do that yet, spell is in cooldown, ect).


    11. Resource manager
    - Takes care of allocating resources in RAM or VRAM and disposing them properly later(to prevent memory leaks).

    12. Dialogs
    - In game you are able to talk to certain NPC's and display dialogs on the bottom of your screen.
    - The game is paused during the dialogs.


    13. Targeting system.
    - The game auto targets the closest enemy for you.
    - When you cast spell, that spell is casted at your target.
    - It loops through the object manager and searches for the closest target.
    - The closest target can only be below 40 yards, otherwise no target is selected.
    - NPCs/Bosses only target the main character.


    14. Character manager.
    - Depending on the map, the character is given different spells/level/hp/displayID(different 2D model)
    - The idea of this is so your character can get more powerful with each level, and also change appearance.


    15. Cinematic manager.
    - When the main character completes the level, if the level is set to display cinematic
    the game is paused and cinematic is played, after the cinematic is over the game is unpaused.
    - Cinematics cannot be skipped.


    16. Save system.
    - When you complete a level, the next level is unlocked.

    17. Boss handler.
    - When a boss is targeting you for first time, he engages in battle.
    - A big boss HP bar is displayed on top of the screen, and in the middle is the boss name.


    18. Map/Level editor.
    - The custom built in editor can edit the database.
    - Can create maps and place gameobjects in it, as well as change the gameobject values.


    19. Occlusion Culling.
    - The game renders only that is vissible to the camera in order to save performance.
    - The game's performance was tested on my mini-notebook and works perfectly at max FPS.




    Why am i doing this???

    Why why why? I could have used Unity3D as a game engine, or Unreal engine, or some kind of game maker that can make my work easier, or why would i create this on first place??? The answer is very simple. I do this game in memory of the private server in which i played for 10 years. I am turning 26 next month, and i spent nearly half of my life on this private server. The server was called Monster-WoW (There is a fake Monster right now with 100 stupid people online and retarded owner, that's not the Monster i talk about atm). My server deserves something more than just words like "Oh it was a good server, i miss it so much.." or videos in memory of the server. No words, no videos, it deserves entire game devoted to it. And not just a game created with crappy game engine with copy pasted code. A game created with custom built game engine that was created just for it. And a code, that i wrote without copy pasting. And that game, is the game on this post. There is no other person in the whole world who missed his WoW private server more than i do. Sure, people suffer because of WoW. Blizzard created the best MMORPG of all time, and it was not destroyed by hackers, it was destroyed by Blizzard themselves. They are also the ones who shut down Monster WoW. Creating this game is a way to express my emotions towards Monster WoW, and also a way to say thanks to Mainadmin, the owner. I want to say huge thanks to him for keeping the server online for so many years. And also for the full geared character that he gifted me, with a Legendary staff for my mage. Stay tuned and wait for update on this project.


    Download Link - Games - DiabloSoft

    Last edited by dlablo; 02-19-2024 at 09:39 AM.

    World Of Warcraft The Ruins Of Monster WoW
  2. #2
    dlablo's Avatar Active Member Authenticator enabled
    Reputation
    77
    Join Date
    Nov 2014
    Posts
    102
    Thanks G/R
    13/20
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Added talking dialogs.
    Of course, the game will have storyline, as well as cutscenes. And dialogs are not exception.



    The dialogs will appear when your character talks with somebody, ect. Like a typical 2D game.
    During the dialogs the game is paused, and all spell missiles remain frozen in the air ect.
    Perfect functionality!
    Last edited by dlablo; 10-15-2023 at 03:27 PM.

  3. #3
    developerer's Avatar Member
    Reputation
    1
    Join Date
    May 2023
    Posts
    14
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Major Terry Davis vibes but I fucking love it. C#?

  4. #4
    dlablo's Avatar Active Member Authenticator enabled
    Reputation
    77
    Join Date
    Nov 2014
    Posts
    102
    Thanks G/R
    13/20
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by developerer View Post
    Major Terry Davis vibes but I fucking love it. C#?
    Yes . However it's not COMPLETELY made from scratch, i used Newtonsoft.Json and Sharp.DX.

  5. #5
    dlablo's Avatar Active Member Authenticator enabled
    Reputation
    77
    Join Date
    Nov 2014
    Posts
    102
    Thanks G/R
    13/20
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Added props in the editor.


    Well, those objects are not just for decoration. They have their own collision, so you can't go trough them.
    For instance let's say i place a wall. I cast Frost Bolt towards a target that is behind the wall, and i will hit the wall instead.
    The target will take no damage.

    This is day 7 of development btw, and im allmost done with the programming part.
    The rest is all photoshop and database editing.

    What's left to program is the AI logic of the NPCs. The NPCs are object just like the main character, they are able to move in all directions and cast the spells that they have. After i complete that part i will make a quick video to show my curent progress.
    Last edited by dlablo; 10-16-2023 at 04:13 AM.

  6. #6
    bigpal's Avatar Member
    Reputation
    4
    Join Date
    Jan 2021
    Posts
    37
    Thanks G/R
    0/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    if you guys want to build a decent 2d or even 3d game just use construct 3 for multiplayer games or even build box for Singel player games either game engine would speed up the process of making a game.

  7. #7
    developerer's Avatar Member
    Reputation
    1
    Join Date
    May 2023
    Posts
    14
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    How are you going to handle the AI? GOAP? Behavior tree?

  8. #8
    dlablo's Avatar Active Member Authenticator enabled
    Reputation
    77
    Join Date
    Nov 2014
    Posts
    102
    Thanks G/R
    13/20
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by bigpal View Post
    if you guys want to build a decent 2d or even 3d game just use construct 3 for multiplayer games or even build box for Singel player games either game engine would speed up the process of making a game.
    As i said, i make this game in memory of my old private server Monster-WoW. Making a game using game engine is super easy. As i mentioned in the main post of this thread, my server deserves more than a cheap game made with game engine. And how would the game engine speed up the process? I made this game engine in 7 days, and after couple of hours it will be finished. And then i will start making the levels/maps of the game using the level editor. And besides, making your own game engine is such a satisfying work.

  9. #9
    dlablo's Avatar Active Member Authenticator enabled
    Reputation
    77
    Join Date
    Nov 2014
    Posts
    102
    Thanks G/R
    13/20
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by developerer View Post
    How are you going to handle the AI? GOAP? Behavior tree?
    It's very simple. In fact i've done it before for my browser game that i never released. I mentioned that the game auto targets the enemies for you, but you need to be below 50 years distance from them. Same goes for the NPCs. They auto target me when i get near them, and if their target is not NULL, they start walking towards it. And on their way, they check their spells if they can cast some(performing cd checks, distance checks ect..). The NPCs will allways cast damaging/stun spells if they are not in cooldown. If they are missing hp, they can heal themselves if they have healing spell, and they even can cast damage absorb spells if they have any. But in all cases, the NPCs will not have more than 4 spells. I will not go into behaviour trees and complex stuff like that. All of the AI's actions will be stored in just a single function, actually, i store everything in a single function. This is how my main loop looks like.

    Code:
                    if (GameState == GameStates.MainMenu)
                    {
                        // If not In-game, draw and handle the menu UI
                        drawMenuButtons(WARDdirectLayout, directWriteFactory, WARDdirectFormat);
                        menuButtonsHoverCheck();
                    }
                    if (GameState == GameStates.InGame)
                    {
                        // In-game and the level is fully loaded
                        if (levelLoaded && levelTexturesLoaded)
                        {
                            // Draw everything on the scene
                            drawAllObjects();
    
                            // Camera smoothly foolow main character
                            moveCameraSmoothly();
    
                            // If dialogs are present, dont trigger the game's mechanics
                            if (!drawDialogs() && !levelIsOver)
                            {
                                // Draw damage text
                                renderBattleText();
    
                                // Perform main character and NPC movements
                                // This function also performs collision checks
                                performMovements();
    
                                // Display spell action bar and all of the cooldowns
                                drawSpellBar();
    
                                // Handle finish spell casting for all npcs and main character
                                finishSpellCast();
    
                                // Check if any NPC or main character's hp is 0 or below
                                performDchecks();
    
                                // Handle all flying particles in the world
                                handleParticles();
                                // Animate all flying particles in the world
                                animateParticles();
                            }
                            // If devMode is activated, display the dev UI
                            displayDevModeTools();
                        }
                    }

  10. #10
    dlablo's Avatar Active Member Authenticator enabled
    Reputation
    77
    Join Date
    Nov 2014
    Posts
    102
    Thanks G/R
    13/20
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    So, as a test i developed AI system in 30 minutes, the system is very basic in terms of pathfinding.. but i will work on that later.
    Now, enjoy the first video of this game!



    In the video i create a quick level to showcase the AI, the dialog system and the collision.
    JUST TO CLARIFY
    1. All spells in the video use the same particle/missiles because i havent added any yet.
    2. The yellow/red/grey boxes and lines are only vissible in developer mode.
    3. The pathfinding system is gonna be improved, i use the curent one just for testing.
    4. Most of the UI / Background images are just placeholders, they are gonna be improved.
    5. The NPCs have cast bar on auto attack, that is a bug im gonna fix.


    And as a reply to the above post, here is the AI function that drives every NPC.
    Code:
    public void perform_AI_movements()
            {
                if (aiActionRefreshRate.Elapsed.TotalMilliseconds > settings.AI_action_interval)
                {
                    aiActionRefreshRate.Restart();
                    // Loop trough the object manager
                    for (int i = 0; i < objectManager.Count(); i++)
                    {
                        // Check if the current object is NPC
                        if (objectManager[i].type == ObjectTypes.npc)
                        {
                            // Check if the npc has target
                            if (objectManager[i].target != null)
                            {
                                // Check if the target is the main character
                                if (objectManager[i].target.type == ObjectTypes.mainCharacter)
                                {
                                    // Check if the NPC needs to heal
                                    if (objectManager[i].spellIDS[3] != -1)
                                    {
                                        // Check if the heal is not in cooldown
                                        if (!objectManager[i].is_CD(3))
                                        {
                                            // Get the spell heal amount
                                            float healAmount = DBC.spells[objectManager[i].spellIDS[3]].damage;
                                            // Check if the npc should heal itself
                                            // Checking if the lost hp is more or equal to the total hp lost
                                            float hp_lost = objectManager[i].maxHealth - objectManager[i].health;
                                            if (hp_lost >= healAmount)
                                            {
                                                castSpell(objectManager[i], 3);
                                            }
                                        }
                                    }
                                    // Check if the NPC needs to cast absorb damage
                                    if (objectManager[i].spellIDS[2] != -1)
                                    {
                                        // Check if the absorb spell is not on cooldown
                                        if (!objectManager[i].is_CD(2))
                                        {
                                            // Check if the NPC is missing any hp
                                            // The NPC will only cast absorb spell if it misses hp
                                            if (objectManager[i].maxHealth > objectManager[i].health)
                                            {
                                                castSpell(objectManager[i], 2);
                                            }
                                        }
                                    }
                                    // Check if the NPC needs to cast damage 2, this is stun spell
                                    if (objectManager[i].spellIDS[1] != -1)
                                    {
                                        // Check if the absorb spell is not on cooldown
                                        if (!objectManager[i].is_CD(1))
                                        {
                                            castSpell(objectManager[i], 1);
                                        }
                                    }
                                    // Check if the NPC needs to cast damage 1, this is the main damage spell
                                    if (objectManager[i].spellIDS[0] != -1)
                                    {
                                        // Check if the absorb spell is not on cooldown
                                        if (!objectManager[i].is_CD(0))
                                        {
                                            castSpell(objectManager[i], 0);
                                        }
                                    }
    
                                    // Get the distance between the NPC and the player
                                    float distance = distancePointf(objectManager[i].position, objectManager[i].target.position);
    
                                    // Absolute movement indicates if the NPC should move diagonally towards its target
                                    bool absoluteMovement = false;
                                    if (distance > 12)
                                    {
                                        if (distance < 20)
                                        {
                                            absoluteMovement = true;
                                        }
                                        // Move left
                                        if (objectManager[i].target.position.X < objectManager[i].position.X)
                                        {
                                            objectManager[i].left = true;
                                            objectManager[i].right = false;
    
                                            objectManager[i].up = false;
                                            objectManager[i].down = false;
                                        }
                                        // Move right
                                        else
                                        {
                                            objectManager[i].left = false;
                                            objectManager[i].right = true;
    
                                            objectManager[i].up = false;
                                            objectManager[i].down = false;
                                        }
                                        if (absoluteMovement)
                                        {
                                            // Move up
                                            if (objectManager[i].target.position.Y < objectManager[i].position.Y)
                                            {
                                                objectManager[i].up = true;
                                                objectManager[i].down = false;
                                            }
                                            // Move down
                                            else
                                            {
                                                objectManager[i].up = false;
                                                objectManager[i].down = true;
                                            }
                                        }
                                    }
                                    else
                                    {
                                        objectManager[i].right = false;
                                        objectManager[i].left = false;
                                        objectManager[i].up = false;
                                        objectManager[i].down = false;
                                        objectManager[i].ismoving = false;
                                    }
                                }
                            }
                        }
                    }
                }
            }

    EDIT: Okay, im curently working on the sound manager. By now, the game had no sound. For the spells/particles sfx, i will use the original WoW sounds provided from wowhead.
    I added NAudio library to my project.
    Last edited by dlablo; 10-16-2023 at 05:19 PM.

  11. #11
    developerer's Avatar Member
    Reputation
    1
    Join Date
    May 2023
    Posts
    14
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Video looks awesome.
    "perform_AI_movements()" this function tho, is an abomination. I wouldn't want to work on that once it involves a bit more logic.

  12. #12
    dlablo's Avatar Active Member Authenticator enabled
    Reputation
    77
    Join Date
    Nov 2014
    Posts
    102
    Thanks G/R
    13/20
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by developerer View Post
    Video looks awesome.
    "perform_AI_movements()" this function tho, is an abomination. I wouldn't want to work on that once it involves a bit more logic.
    This will be the last function on which i work on. It may look like abomination but it isnt actually. Only the pathfinding is abomination. As you can see i do simple check, if his target is left, go left, if he is down, go down ect. About the spell functionality, it may seem like all npcs use the same spells but no. For example slot 4 is meant for healing spells, slot 3 for damage absorb spells, slot 2 for stun spells, and slot 1 is a damage spell spammed in the NPC's rotation. I tested it and it works well. All it needs is pathfinding system, and since this is a 2D game, it wont be hard, in fact i already done it before for my old bot for WoW 3.3.5



    The real abomination tho is the sound manager... programming the sound stuff turned out to be much more complex than the spell casting system. I went with NAudio to play certain sounds on the go, but it created huge memory leaks in certain places. And im not able to handle this since i am not expert with the audio. Sure i can just load a sound file and play it on a new thread on the go, but that decreases the performance. Doesn't matter that we are in 2023 and people have fast computers, that will not impact their performance so badly. But i want to code everything as efficient as possible just for quality and satisfaction. Because as i said, my server deserves a great game. So currently the game takes barely 1% cpu usage, you can play this even on a mini-notebook without a problem.
    Last edited by dlablo; 10-17-2023 at 05:10 AM.

  13. #13
    developerer's Avatar Member
    Reputation
    1
    Join Date
    May 2023
    Posts
    14
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Yes the checks are simple, but it is also unreadable even now, let alone when you plug in 25 more actions or whatever
    You're an insane programmer tho that's for sure.

  14. #14
    Tirthankara's Avatar Active Member
    Reputation
    19
    Join Date
    Jun 2017
    Posts
    46
    Thanks G/R
    6/17
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    If you need a very angry gm, I'm here to help.


    P.S. Are we expecting blackjack and h......? Or at least a Draenei striptease.
    Last edited by Tirthankara; 10-17-2023 at 09:27 AM.

  15. #15
    dlablo's Avatar Active Member Authenticator enabled
    Reputation
    77
    Join Date
    Nov 2014
    Posts
    102
    Thanks G/R
    13/20
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Tirthankara View Post
    If you need a very angry gm, I'm here to help.
    Talking about GM .. well. The game's storyline is gonna represent my real story in the real server Monster-WoW. In the server i was the owner's favorite player, at least i think so. So i had privileges there. I had character built with GM commands and a legendary staff in it. And i was free to insult GMs as much as i wanted. So you will see how this will look in the game i guess = D...

Page 1 of 2 12 LastLast

Similar Threads

  1. [Release] World of Private | WoW #1 Private Server Community DISCORD
    By Marvelino123 in forum World of Warcraft Emulator Servers
    Replies: 0
    Last Post: 12-09-2018, 06:54 PM
  2. [Trinity] Pandemic-WoW 2010 World of Warcraft Area Server 3.3.5 The best PvP Experience!!
    By LJN in forum WoW Emulator Server Listings
    Replies: 0
    Last Post: 09-08-2010, 04:06 PM
  3. Is Blizzard ruining the World of Warcraft?
    By Fintie123 in forum World of Warcraft General
    Replies: 41
    Last Post: 07-13-2009, 10:35 PM
All times are GMT -5. The time now is 04:33 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search