Journey of a Modder

Post anything else Diablo II legacy related here but remember this ISN'T a hack site. All posts directly related to battle.net hacking will be deleted.
User avatar
Xibalba
Dark Alliance Beta Test
Champion of the Light
Posts: 283
Joined: Thu Aug 29, 2013 2:38 pm
Location: Skyrim

Journey of a Modder

Post by Xibalba » Sat Sep 05, 2015 6:33 pm

I have been modding Diablo II for a long time. But everytime i had an idea, something was stopping me, limiting me. That was because of something called "hardcoding". Almost everything is possible with it, if you know C++, ASM and reverse engineering/DLL injecting-hooking techniques you are good to go. The problem is, i dont have any experience on one of these. I also even didnt had the time to learn them. So my years past being jelous about code editor members of the keep (d2mods.info). I looked at the things they have done while being extremely jelous at the same time.

After a long time, i finally graduated from high-school and going to a collage after a stressful exam period. Now, i have free time. This means im gonna bite the bullet and start learning hardcoding. Im gonna start by a book i borrowed from my cousin, it is called "DEITEL - C++ HOW TO PROGRAM (Sixth Edition)". I thinks its a good place to start, why not?

I suck at maths and suck at programmin languages but still, there is a little hope. If you really want something, you can achieve it. So i decided to make this blog. Maybe years later someone will read this and share the same steps with me. Im gonna try to share every thing i learn reguraly. They wont be detailed. Im just gonna write the topics. When i start hardcoding Diablo (One day...) ill make detailed tutorials hopefully and they will be beginner friendly. Anyways enough about dreaming, lets do this. Stay with me on this journey.
My purpose is to share every step made to learn how to code edit. After i learn C++ and reverse engineering ill start to write guides. Im sharing my weekly progress (Updated day by day.) on this blog. Maybe if someone wants to learn how to code edit, he or she(!?) can clearly see what it takes to achieve that.

Click here for the blog.

UPDATE: New website, WIP File Center and %99 uptime 3 years of premium host. Thanks for the messages!

Things I Have Learned So Far (From my blog):

Code: Select all

DAY 1

+ Language types (Machine, Assembly and High-Level) 
+ C++ Development Environment (Editor -> Preprocessor -> Compiler -> Linker -> Loader -> CPU) 
+ Software Technologies (MySQL, PHP, Ruby etc.) 
+ Boost Libraries 
+ Object Techology and UML 
+ Microsoft Security Development Lifecycle (SDL) 
+ Pre-compiled Headers (stdafx.h)
+ Tracker (tlog files), cleaning & rebuilding solutions. 
+ SDKDDKVer.h & WinSDKVer.h (What version of Windows to build the application.)
+ External Dependencies
+ C Standard Input and Output Library (cstdio / stdio.h)
+ Generic-Text Mapping (tchar.h)
+ Input/Output Stream Header File (iostream) for C++ style
+ #pragma once (preprocessor directive). Causes the current source file to be included only once in a single compilation.
+ Comments and white spaces.
+ Functions, the body of the functions and the statements.
+ Standart output stream object (std::cout), stream insertion operator (<<), input stream object (std::cin), stream extraction operator (>>), stream manipulator (std::endl)
+ Escape sequences (\n, \t, \r, \a, \\, \', \").
+ Return statement and exiting a function (return 0;).
+ Declaring variables.
+ Arithmetic operators (+, - , *, /, %),Relational operators ( >, <, >=, <=, ==, !=)
+ If statement.
+ Defining a class.
+ public: Access-specifier
+ void return type. It wont return any data.
+ C++ Standart String Class <string>
+ Using getline function.
+ Parameters, arguments.
+ Data hiding (private:)
+ Get and Set functions.
+ Constructors

DAY 2

+ Creating Header files for classes and including them to source codes.
+ .length and .substr.
+ Algorihms basics and pseudocode.
+ Booleans.
+ Conditional operator (?:), if ... else, nested if ... else, dangling if ... else, while.
+ Null statement.
+ Sentinel value.
+ Top down & stepwise refinement.
+ Float, double.
+ <iomanip> parametric manipulators, std::setprecision
+ Unary cast operator ( static_cast< type > )..
+ Parameterized stream manipulator (setprecision), fixed, showpoint.
+ Assignment operator +=, -=, *=, /=, %=.
+ Increment/decrement operators a++/++a & a--/--a.
+ Further knowledge of UML.

DAY 3

+ Essentials of counter-controlled repetition (while, for, do ... while, switch).
+ std::setw (set field width).
+ Standart C++ math library <cmath>.
+ std::pow & pow
+ Usage of cin.get();
+ EOF (<iostream>).
+ Short (-32,768 to 32,767) & long (-2,147,483,648 to 2,147,483,647) & char.
+ Break and continue (-> for skipping).
+ Logical operators && (AND), || (OR), ! (NOT).
+ Boolalpha & noboolalpha (True & 1).
+ == VS. =.
+ sqrt(x), celi(x), cos(x), log(x), log10(x), sin(x), tan(x).
+ Multiple arguments & return expressions.
+ Function signatures, argument coercion, argument promotion rules.
+ Signed int and unsigned/unsigned long int.
+ <cstdlib>, rand();, std::rand, std::srand, srand(seed);.
+ Shifting & scaling integers -> 1 + rand() % 6 etc..
+ Time(0) -> Clock as second, <ctime>
+ Enumeration (enum).
+ Storage classes (Auto, register, static).
+ Scope rules.
+ Function call stack & activation records.
+ Functions with empty paramet lists.
+ References & references as alias.
+ Default arguments.
+ Unary scope resolution operator (::)
+ Function overloading.
+ Function templates.
+ Recursion VS. iteration.
+ Further knowledge of UML.
Last edited by Xibalba on Mon Sep 07, 2015 7:43 pm, edited 4 times in total.
Life is too short to drive boring cars.

User avatar
mirecek
Dark Alliance Beta Test
Arch-Angel
Posts: 1218
Joined: Sun Sep 11, 2005 10:04 am

Re: Journey of a Modder

Post by mirecek » Sat Sep 05, 2015 8:13 pm

watching this ;-)
"Each of those few chords separated by complete silence feels like a knife wound to the heart"

There is no greater sorrow than to recall happiness in times of misery. Draconian

User avatar
Xibalba
Dark Alliance Beta Test
Champion of the Light
Posts: 283
Joined: Thu Aug 29, 2013 2:38 pm
Location: Skyrim

Re: Journey of a Modder

Post by Xibalba » Sat Sep 05, 2015 9:33 pm

mirecek" wrote:watching this ;-)
Thanks a lot for your interest! :) im updating this topic everyday, writing the things i have learned daily.

DEITEL C++ -> PCASM -> Reversing this is the book order im following :)
Life is too short to drive boring cars.

Return to “Diablo II Chatter”