Author Topic: Considering learning programming  (Read 237 times)

Abashi76

  • Fast newbie
  • *
  • Posts: 41
  • Karma: 0
    • View Profile
Considering learning programming
« on: 2018-12-26 02:51:05 »
I was looking up programming classes in my local college; just thought of it today.

I often complain that a combination of the New Threat and Hardcore mods would be perfect with some changes in the ways certain enemies are used. I can't even figure out to make a simple mod myself because i think i need programs that only work on 64-bit and i have a 32-bit. I would think basic programming should be able to help make my computer compatible with modding programs for all sorts of games originally from the 1990s.

I could make a lot of things if i only knew more about programming, especially the random problems that tend to only happen to me.

The classes are at least four hours long based on my research. There are a very limited amount of choices based on my search. They are mostly basic programming classes needed for all programming. I don't know where the specific stuff is taught.

Is there any chance there are still colleges that teach programming needed to mod old video games?

blippyp

  • Cool newbie
  • *
  • Posts: 78
  • Karma: 6
    • View Profile
Re: Considering learning programming
« Reply #1 on: 2018-12-26 03:00:24 »
I've been basically programming my entire life, and have used dozens of different languages, I promise you that all you need to get started is to pick up a basic programming book for dummies in whatever language you desire to learn. For the most part, they are all the same, but there are some pretty serious exceptions to that rule. Once you've learned the basics of one language though you will notice just how similar all the languages really are. They all store memory in variables and use conditions and loops to code. How you design a program/game in one language is still relatively the same way in another language, just the syntax is different in how you type it out.

You'll be hard pressed to find a good course on how to design games though. That just comes with experience. There are some references and books out there to learn how, but for the most part you're kind of on your own. You either get how to do it or you don't. Once you've been programming long enough you will realize there isn't much difference between making a game and an application or a command line tool anyway tbh.

It sounds like you're just starting out - So if I were you, I'd just go get yourself a 4 Dummies book or start reading up on one of those tutorial sites on whatever language you want to learn. It takes time, but can be very rewarding.

Good luck, hope that helps you out.

KnifeTheSky77

  • Freak
  • *
  • Posts: 549
  • Karma: 21
  • Somnambulistic Paraphile
    • View Profile
Re: Considering learning programming
« Reply #2 on: 2018-12-27 04:52:22 »
Learn Node for free on the internet, then electron + react for a UI if necessary -- it's all just JS. I wouldn't bother with other stuff tbh

Shard

  • Insane poster
  • *
  • Posts: 340
  • Karma: 38
    • View Profile
Re: Considering learning programming
« Reply #3 on: 2018-12-27 16:38:33 »
That's terrible advice given the question. The OP wants to learn programming so he can mod games. React and Node are primarily web-only and won't help him at all.
If you know nothing about programming, take an introductory class for c or java. Anything you learn in those will transfer to nearly everything else.
For modding, you'll have to have a much deeper understanding of file formats and/or assembly, which is not something you can just jump into.
For a good start, pick up a game that has an editor with a scripting language like rpg maker (you can find old versions of rpg maker for free) and just play around with it. If you like it, then I would suggest taking the higher level CS classes.

KnifeTheSky77

  • Freak
  • *
  • Posts: 549
  • Karma: 21
  • Somnambulistic Paraphile
    • View Profile
Re: Considering learning programming
« Reply #4 on: 2018-12-27 21:52:33 »
No.

Node can directly execute c++ if necessary and can easily modify system files, while also being simple to learn.

Suggesting c++ to someone with no prior programming experience is bad advice.
« Last Edit: 2018-12-27 21:54:04 by KnifeTheSky77 »

sithlord48

  • No life
  • *
  • Posts: 1486
  • Karma: 33
  • Dark Lord of the Savegame
    • View Profile
    • Blackchocobo
Re: Considering learning programming
« Reply #5 on: 2018-12-27 22:01:49 »
Suggesting Electron for anything is bad advice.  Want to learn programming Learn some basic computer science and language along with it. I would recommend C++ since its low enough for to learn the concepts and high enough where its not to hard to do anything.

If you want to work on games C++ and C# are what you will find many are made in. (C# more recently since many newer engines use it for scripts.)

KnifeTheSky77

  • Freak
  • *
  • Posts: 549
  • Karma: 21
  • Somnambulistic Paraphile
    • View Profile
Re: Considering learning programming
« Reply #6 on: 2018-12-27 22:04:00 »
lol ok.

Covarr

  • Covarr-Let
  • Administrator
  • No life
  • *
  • Posts: 4006
  • Karma: 122
  • Just Covarr. No "n".
    • View Profile
Re: Considering learning programming
« Reply #7 on: 2018-12-27 22:34:13 »
The first thing you need to ask is what are you modding. There is a big difference between changing a game's executable, changing its data files, or working from originals. Here's somewhat of a basic overview.

As far as modern engines go...
Unreal Engine 4 uses its Blueprints visual scripting system in-engine, which can be expanded at a lower level using C++.
Unity uses C# for its scripting. It also allows plugins written in C, C++, Objective C, etc., which can be called using C#.
CryEngine uses Lua and C# for scripting, and C++ for lower-level stuff.

Older games, especially from the '90s, are much more likely to have been built in a proprietary engine, which can vary heavily from game to game, particularly by genre, and typically not as publicly available as the popular engines today. Realistically, the best choice for modding will depend on the particular game, and whether it can be decompiled, but the best things you can learn are C, C++, and x86 assembly (the latter of which basically demands a decent understanding of computer science).

If you want an easy language that can interact with files or memory but don't necessarily need to directly change existing software, you might consider Python. It's powerful, extensible, reasonably fast, and all-around a good first choice for beginner programmers.

And Node and Electron and React? I can't strongly enough recommend avoiding them, unless you really want to make a career out of bloated webapps (or worse, bloated webapps as desktop apps). They don't integrate nicely into OS native look and feel UIs, they have really poor performance, and their growing popularity is a pox on the tech industry.

quantumpencil

  • Fast newbie
  • *
  • Posts: 37
  • Karma: 5
    • View Profile
Re: Considering learning programming
« Reply #8 on: 2018-12-28 14:57:34 »
Don't try to take the easy way (because there isn't one). Realize that being a programming/CS are huge fields with a lot to learn, and prepare yourself for a multi-year journey.

I would suggest learning at least three languages, in the following order:
  • one classical systems language(C)
  • one functional language (Elixir/Erlang would be my bias cause <3 OTP and BEAM)
  • one scripting language (Python, probably).
  • If you want to learn specifically for modding, learn x86 after C

I would suggest C first, as it's the classical programming language and a lot of other popular programming languages are modeled on it. You can get close enough to the ASM to write code in C calling fist size structs in compiled executables, etc so it's by far the most useful languages for modding compiled code. C++ is also woefully complex for a beginner, I've worked in it for like 10 years and probably know 25% of the language spec cause it keeps getting more bloated.

Also take at least one systems programming course and one algorithms/data structures course, or familiarize yourself with the relevant material. Graph-traversals, dynamic programming, greedy/random algorithms, hashing and complexity analysis are tools you want in your toolbox for general purpose engineering. Systems programming will help you understand how code actually executes on your system, the various levels of virtualization involved, and is basically what you need to be able to mod a compiled executable.

I recommend this mostly to expose yourself to different paradigms and ways of thinking about code. Don't waste time on specific frameworks at first, this or that web-hotness is always changing and once you have a strong conceptual understanding of the foundations of programming picking up a new "framework" takes a few weeks of reading a codebase written in it + documentation.

To this end, remember to READ code, especially at first. Then try to use patterns you encounter in your own projects. You won't become better if you just write code, because -- well, you don't know how to write it. Gotta imitate before you innovate =p.

For getting started, I suggest you consider enrolling in Harvard's CS50 course: https://www.edx.org/course/cs50s-introduction-computer-science-harvardx-cs50x. It's free, and the first course in the series is taught in C and will do a good job familiarizing you with what I consider to be "the basics."
« Last Edit: 2018-12-28 15:14:37 by quantumpencil »