Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "warcraft 3"
-
When I was 14, I was bad at many things. I sucked at sports cause I was weak and small. School was boring so I did not study. I mostly played games.
During a summer break, I wanted to change shit in WarCraft 3, as I heard from a friend that heard it from a friend, that you can do that. Many internet searches later I realised that you kind of just tell to the game what you want it to do, just simplified. If (target is enemy) do damage, for (every human player) make sparkly stuff...
After months of "playing" games, the new school year started and I got, for the first time, a proper computer class. Imagine my surprise when we started doing the shit I did all summer. That year I had 100% on all tests.
Many years later programming gave me friends, made my inner nerd and geek come out, gave me a free trip to the USA to represent my country, two TEDx talks, and finally a job that I like with the pay I can live with.11 -
If you need to learn/teach object orientation, these are my approaches (I hate that classic "car" example):
1) Keep in mind games like Warcraft, Starcraft, Civilization, Age of Empires (yes, I am old school). They are a good example of having classes to use, instantiating objects (creatures) and putting them to work together. As in a real system.
2) Think of your program as an office that has a job to do, or a factory that has something to deliver. Classes are the roles/jobs and objects are the workers/employees. They don't need to be complex, but their purpose must be really (really, really) well defined. Just like in a real office / factory.
3) Even better (or crazier), see your classes and objects as real beings, digital creatures in a abstract world, and yourself as a kind of god, who creates species (define classes) with wisdom. Give life when it is the time for them to come into the world (instantiate object) and kill them when they are done with their mission (dispose an object). Give them behavior, logic, conditions to work with, situations where they take action, and when they don't. Make them kinda "smart". Build them able to make decisions and take actions based on conditions. Give them life. Think on your program as an ecossystem. There must be balance, connection, species must be well defined and creatures must work together to achieve a common objective. Don't just throw code and pray for it to run. Plan it.
-----
When I talk about my classes like they are real beings, and programs as mini-worlds, some people say I am crazy, some others say that's passion.
It is both! @__@3 -
Maybe it's not exactly about programming, but sure damned it caused it.
Back in the day I managed to create a warcraft 3 map which played tetris. The orc peons ran down with faster and faster speeds, since it was a multiplayer, we used to play it with friends. We played it so much during the day, that all of the dreams were about orcs running and exploding once you finished your line. It was the only dream I remember having.2 -
Who thought Lua was a good idea for extending gameplay functionality??
It's weakly typed, has no OOP functionality and no namespace rules. It has no interesting data structures and tables are a goddamn mystery. Somebody made the simplest language they could and now everybody who touches it is given the broadest possible tools to shoot themselves in the foot.
Lua's ease of embedding into C++ code is a fool's paradise. Warcraft 3's JASS scripting language had way more structure and produced much better games, whilst being much simpler to work with than Lua.
All the academics describing metatables as 'powerful extensionality' and a fill-in for OOP are digging the hole deeper. Using tables to implement classes doesn't work easily outside school. Hiding a self:reference to a function inside of syntactic sugar is just insanity.
Nobody expects to write a triple-A game in lua, but they are happy to fob it off to kids learning to program. WoW made the right choice limiting it to UI extensions.
Fighting the language so you can try and understand a poorly documented game engine and implement gameplay features as the dev's intend for 'modders', is just beyond the pale. It's very difficult to figure out what the standard for extending functionality is, when everybody is making it up as they go along and you don't have a strongly-typed and structured language to make it obvious what the devs intended.
If you want to give your players a coding sandbox, make the scripting language yourself like JASS. It will be way better fit for purpose, way easier to limit for security and to guarantee reasonable performance. Your players get a sane environment to work in and you just might get the next DOTA.
Repeatedly shooting yourself in the foot on invisible syntax errors and an incredibly broad language is wasted suffering for kids that could be learning the programming concepts that cross all languages way quicker and with way more satisfying results.
Lua is hot garbage for it's most popular application, I really don't get it. Just stop!24 -
As of late I'm creating private game servers on my local network in my free time for fun / relaxing
I've already running:
a World of Warcraft vanilla;
Travian version 3;
And I am currently working on a conquer online private server, but getting the right client for it is the hard part...4 -
It appears that Blizzard is joining the AAA fray in its latest successful attempt to enrage its customers. Looks like the acquisition by Activision did exactly what everyone thought it would do.7
-
I first started off with a pentium 3 machine in 2004, started gaming on warcraft 3 and maplestory and eventually got addicted to it because nothing else was interesting in my life. Okay extending this story, i eventually got banned, dad smashed 1000 bucks of his money by kicking and throwing it. Years later (i think it was 2011), i got hold of my first Android device. This time round, things were different and I spent 6 months with it problem free and then it started lagging. Google search led me to XDA, started modding the device, eventually startedgetting interested about how people do it and voila, C prog, write some management drivers for malloc and etc. Eventually i dropped kernel development 3 years later and now im in .NET Core.5
-
Started developing an interest in programming after creating warcraft 3 maps using the world editor. I still remember those days where I used the gui trigger editor, where I don't even know the difference between local and global variables, preventing memory leaks by using leak check and etc. Creating new skills using triggers was so exciting. Then I discovered JASS, but I didn't really learn or use much about it. Now I'm working in Unity3D and it is awesome!2