• As part of the relaunch of Skullheart, ALL previous threads have been archived. You can find them at the bottom of the forum in the Archives (2021) section. The archives are locked, so please use the new forum sections to create new discussion threads.

Learning to Program (because that's really important) (altered thread name)

WrestlerGuile

Well-Known Member
Joined
Jan 1, 2014
Messages
655
Reaction score
316
Points
63
Age
27
Location
Houston, TX
Steam
EVoDRAgQUEEn (If a Skullgirls Sequel comes out)
PSN
FASTERLANED
Painwheel Unknown Unknown
EDIT: I've been thinking furiously for months what to do with this thread. It's extremely useful for anyone who wants to learn programming, how to program games, talk about programming. Anything goes because I could not come up with a different subject for this thread. However, as time went by, I've recently learnt that programming and coding was the foundation to any game, and if anything needed to be stressed, it's programming because one small mistake can turn into a headache quickly if you don't program your game correctly. With that in mind, I've decided to fully alter the focus of the thread to programming, coding, computer science, and anything related.

The original point of this thread is down below.

First, my story:
I never, ever had plans to make a fighting games before I saw Skullgirls. It never even crossed my mind. I was, however, having an inter-debatacal as to whether make a manga or make a videogame. I thought about making a game a bit similar to Suda51 titles, with their really wacky stories and everything, but I continued to wonder if I should do manga or game first. When I saw Skullgirls, I was amazed with the art and the fighters' animation and everything, so it didn't take me far too long to make my decision, so I did some on-paper concepts since I can't draw at the level I want yet. However, I don't completely understand fighting games!

My problem is that I don't really know how fighting games really work. So, in conjunction with this thread made by @jam1220, plus the insurgence of fighting games(most failed) on KS or IGG, I decided to make a thread of my own about how to make fighting games. However, this thread will not be about what exactly I'm making or what anyone else is making, just about developing fighting games in general. We don't have to just discuss fighting games and their development itself, but also things like animations and KSs or IGGs(if you should use them at all, putting out a compelling demo, building merit beforehand, showing you actually understand what you are building).


What I have learned from playing and studying both Skullgirls and MvC3: Either ratio life bars or give them all the exact same amount of life in order to increase the chances of a balanced game(Street Fighter 3 and maybe other SFs are guilty of doing the opposite, maybe all Capcom fighting games in fact)

I do, in fact, need to learn how to program and code in order to make any game, considering I want to do it all without help, so college will help out with that. Even still, I would need help learning how to use certain programs that I want to use or come across, so asking for help on how to work it wouldn't hurt...

I have, throughout time, learned that making any fighting game, hand-drawn or 3D, is very expensive to produce, so anyone making a fighting game remember that its very long and expensive to make.

Lastly, I should mention an experiment I'm trying: to help have meaningful conversation, I will be presenting a specific subject to talk about and when a conclusion is came to or the problem is solved, then I will signal to move on to the next topic. But remember, this is EXPERIMENTAL!

So, with all this said, I want to start with: The actual designing of animations, like the getting hit, attacking, crouching, etc.,...
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
I know how important the animation is in any fighting game. You have to make the damage you see feel believable and look authentic because it is, make everything connect in a natural, yet fluid way. But am I missing anything?
 
Last edited:
I know how important the animation is in any fighting game. You have to make the damage you see feel believable and look authentic because it is, make everything connect in a natural, yet fluid way. But am I missing anything?

It's not always obligatory. Look at Skullgirls: some of the grab animations don't really work esthetically, especially with headless Fortune, but it's okay afterall. Otherwise they would have to animate pretty much every single interaction and that's expensive, too hard, and I don't even know if the game itself could handle it. The animations need to be effective, the interactions can be a bit coarse for the sake of the gameplay.
It's a fighting game, not an animated short, after all.

Also yeah I'm starting to think making one myself! What the heck is this, a Wanna-make-a-fighting-game fever?
 
Look at Skullgirls: some of the grab animations don't really work esthetically, especially with headless Fortune
I just fixed all of those except Valentine's, btw (because putting the gas into her neck-hole already looks mostly correct, and is better than putting it onto her boobs). :^P

I feel I should interject - this thread is a bit like saying "I want to build a car. Should the seats be leather to match the upholstery?" First you need to know how to build the motor, the frame, a limited-slip differential, rack-and-pinion steering, etc. You are analyzing the problem from a very high level while blissfully ignoring that you don't have a foundation.

Continue!
 
Yeah there's a lot of things to consider before you even get to needing to worry about what your animations look like.

Unless you're just coming at this from the perspective of an animator/artist and not a programmer? That seems likely.
 
Yeah, I think chicken got the points right and Mike is also right about the build of a foundation starting from the ground up. I actually found the point made in Skullgirls' own website.
http://skullgirls.com/2011/05/animation-getting-the-details-right/
---------------------------------------------------------------------
So, yeah, about what Mike said, in a car you need to build its frame first, and in gaming, the engine is the frame for the rest of game to be built upon. But how to choose the right engine? I remember an extended Konami interview about MGR:R and going from the Fox engine to the Unreal engine because for the Platinum team, the Fox was too complicated for them let Raiden cut anything. How does programming work exactly? I've heard of the C++ program being the most versatile, but I don't truly k now how it works other than dabbling into Inspect Element(which is so much fun~) only being able to change the words of a sentence on a website. So engines and programming are the subject.
 
How does programming work exactly?
If you are planning on making your own game, unless someone else is going to program it and you already decided you never will, I strongly suggest putting all other questions on hold until you can answer this one yourself.

If you want to know about programming, play this:
http://armorgames.com/play/2205/light-bot
It's basically programming without the language-specific parts, as a game.
If you can't stand it, can't beat it, or don't enjoy it, programming is not for you.
 
If you want to know about programming, play this:
http://armorgames.com/play/2205/light-bot
QUj1xzq.png


Rk9ahTm.gif


Yo this game's legit.
 
I'm on level 8 right now. I've been playing for 1+ hours. This game is legit, but it's also very tedious and not easy to get the robot to where you want it when you have limited squares, so you have to be really curvy and... you'll see when you play. Just know that lvl7 is the worst!
 
Got to level 10, spent about an hour on it, looked up a walk-through went "lol i never would've got this." I am glad that I don't aim to become a programmer someday.
 
How does programming work exactly?
it's also very tedious and not easy to get the robot to where you want it when you have limited squares
You answered your own question. Like I said, it's programming as a game. If you don't like it, programming is not for you.
 
I'm enjoying it. Though eventually, I hope to find examples of real world applications whenever I learn new stuff.

Seeing it and attempting it as well will help reinforce the lessons in my mind. Currently on level 9 now.
 
You answered your own question. Like I said, it's programming as a game. If you don't like it, programming is not for you.
I actually love this game because each situation forces me to think not in a harder way, but in a different way for what I am presented to solve, from simplicity to excruciating so quickly. I don't remember a time where I had to think so far outside the box before. They are like riddles, which are hard for me too, but all I need is creativity. It's very hard to withstand, but it's worth the effort.
 
So, yeah, about what Mike said, in a car you need to build its frame first, and in gaming, the engine is the frame for the rest of game to be built upon. But how to choose the right engine? I remember an extended Konami interview about MGR:R and going from the Fox engine to the Unreal engine because for the Platinum team, the Fox was too complicated for them let Raiden cut anything. How does programming work exactly?

I’ve only ever been just a hobbyist, but if I were to break things down to their most basic level in a shitty flow chart:

27zj68l.jpg

If you’re actually interested, I recommend finding a game you can enjoy that also has good mod support and start changing things. You’ll likely learn some basic concepts and have at least something to show for it. After that, start using some simple FOSS software that requires you to edit the source code to change basic settings. If you don’t want to kill yourself at that point, do what I never did and seek some sort of formal education.
 
I’ve only ever been just a hobbyist, but if I were to break things down to their most basic level in a shitty flow chart:

27zj68l.jpg

If you’re actually interested, I recommend finding a game you can enjoy that also has good mod support and start changing things. You’ll likely learn some basic concepts and have at least something to show for it. After that, start using some simple FOSS software that requires you to edit the source code to change basic settings. If you don’t want to kill yourself at that point, do what I never did and seek some sort of formal education.

That's actually what I plan to do now. Right now, i'm still stuck in community college and the programming courses are pretty shitty. So, I probably need to transfer once I finish up my several Calculus and Physics (bleh) classes to transfer to a 4 year with a decent programming course.

Though since i'm not getting any younger, i'm trying to learn shit on my own so i'm not JUST waiting for that formal education. :/
 
Working on mods is a good start, @OnyxBones is correct there. It gives you a framework to fool around in and see immediate results.

Hey now, I originally learned programming at a community technical college (while in high school), nothing says you can't make that work.
Physics and calc are both VERY IMPORTANT TO KNOW, formulae for velocity and angle of reflection and so forth. Derivatives. And vectors. You use those ALL the time in programming. ALL THE TIME.
 
Since this thread seems to be addressing some things that are relevant to me I have a question for @Mike_Z .
I'm an undergraduate programmer looking to gain a better understanding on the programming logic behind fighting games (and games in general but that's for another day). I've read that fighting games use state machines to handle all things related to character actions and move properties. If that is still true I was wondering if you had any suggestions on places to look to get a better idea of how to use state machines for these purposes.
 
Working on mods is a good start, @OnyxBones is correct there. It gives you a framework to fool around in and see immediate results.

Hey now, I originally learned programming at a community technical college (while in high school), nothing says you can't make that work.
Physics and calc are both VERY IMPORTANT TO KNOW, formulae for velocity and angle of reflection and so forth. Derivatives. And vectors. You use those ALL the time in programming. ALL THE TIME.

Oh no doubt it can work. However, while my professor definitely really knew her stuff, she was a bit more interested in playing World of Warcraft on the school computer than she was teaching us. :/
 
Oh yeah, Light-Bot!
Some time near the end of last year, Mike Z. mentioned Light-Bot on a Salty Cupcakes stream while answering stream-chat questions. He recommended it to anyone interested in taking a look a programming, as well as text written by a man named Bruce Eckel, called "Thinking In C++". Light-Bot was a blast. I've been working on a game of my own ever since! However, I would like to make it known that I'm using Game Maker 8 (not Studio). Does anybody have any thoughts to share on that? That being said, I have worked very little "from scratch", if at all.
At this point in time, I sorta feel that I can say with confidence that I have enough knowledge of the program to recreate the original Super Mario Bros. (for the NES). There is SO MUCH I have yet to learn. I also very much approached this from the perspective of an animator/artist. And my studies in physics and calculus are severely lacking.



TL;DR:
I grabbed an "engine" (Game Maker 8) and started building around it. Thoughts? My programming "skills" are appalling.
 
Beat light bot in 45 minutes! Level 10 was tough!

I used game maker for about 5 years before getting sick of it. I think it's good for learning basic programming logic, but don't expect to make anything decent with it. I can't imagine using it for a fighting game. Though it looks like it has gotten better in the latest version (they added support for linear algebra, for one thing -_-).
 
I'm sad to say, I've been stuck on level 10 for so long, I had to sleep on it! The thing about level 10 is it doesn't follow a pattern at all, making it the hardest puzzle in the game. I really hope its the last level because I'm always telling myself to never, ever look at any walkthroughs or cheatcodes or whatever. I've also realized that I can't judge on a one day basis for what I will do in my future. Someone in a program once told me in programming class they teach you to think like a programmer, but since level 10 is hard for me because it's pattern-less, I must not be thinking like one. I won't give up though :0)
 
I'm sad to say, I've been stuck on level 10 for so long, I had to sleep on it! The thing about level 10 is it doesn't follow a pattern at all, making it the hardest puzzle in the game. I really hope its the last level because I'm always telling myself to never, ever look at any walkthroughs or cheatcodes or whatever. I've also realized that I can't judge on a one day basis for what I will do in my future. Someone in a program once told me in programming class they teach you to think like a programmer, but since level 10 is hard for me because it's pattern-less, I must not be thinking like one. I won't give up though :0)

theres 2 levels after 10, but 10 seems to be the hardest one
 
I struggled with 11 and 12. I had an idea of how to get it working but the way how I wanted it to run would've taken a little more than what you have to work with.

For me getting it to work with what they give you was harder than giving the instructions to accomplish it. (space for instructions-wise to be a little more specific.)
 
I'm a professional programmer, and just beat Light-Bot in about 35 minutes.

If I ever caught another engineer writing code that looked anything like what I did to get through level 10, I'd probably slap them.

Basically, since there's ledges everywhere, it's easy to make every both functions have a bunch of forward movement that doesn't do anything most of the time, but saves you some crucial steps a couple of times. Put a "light" action that will also usually be pointless in each function, and you should be good to go; just make sure that each one contains one rotate and one jump
 
I finished level 10 hours ago, but I'm stuck on level 11 now. I wonder why I'm having so much trouble finishing off these pussles, but I hope they get easier as I go along. I also found Light bot 2.0 with a break function, and I've seen info on colleges using this game in programmer introductory courses.
 
I'm stuck on final level right now. Still the same problem as before. With the instructions that they give you, I can come up with a few things to get it going but the problem is that I need to figure out how to cut those instructions down a bit to get what I want to accomplish with their limits.
 
This was a lot of fun.

EDIT: All up it only took me about 40 minutes, haha wow. A bit under even. I'm not even a programmer =S I can script but I have a more intelligent person do the difficult stuff for me!

I don't think I was very efficient at all, I ended with 195 commands.

Level 10 and 12 were certainly tricky, disappointed with level 11 though, got it right away.

A tip for level 10 and 12:
One function did A LOT of the heavy lifting for me in these 2 levels.

10 specifically: Oh boy I got this one via trial and error... I didn't really "understand" my own answer, but I will say I used one function mostly for moving forward and another that I used for a specific movement sequence that really helped me out.
DOUBLE SPOILER: Dunno if others did this, but jumping off after the first light and repeating my "forward" function helped a LOT.

12 specifically: This one is tricky at first but is actually quite easy to figure out really. Both of my functions basically did the exact same thing, I just used them to save space in the main function really.
DOUBLE SPOILER: one of my functions basically just got me past one little section and then called the other one multiple times to save space in Main.
 
got to level 6 or so and then was nearly asleep. not due to boredom but it was pretty tedious. i imagine its immensly satisfying though to pull off somethhing complex
 
Took a tiny bit more time/ commands than Tomo009

Why isnt this a fully fledged game? I crave for more.
 
Got to level 10, spent about an hour on it, looked up a walk-through went "lol i never would've got this." I am glad that I don't aim to become a programmer someday.
Just passed lvl 10 without a walkthrough. Looked up how you're supposed to do it, I guess, but I completely did it a different way. My way looks retarded though.
 
Just passed lvl 10 without a walkthrough. Looked up how you're supposed to do it, I guess, but I completely did it a different way. My way looks retarded though.
I wanna know how you can complete that stage without looking totally stupid haha. My janky mass of commands looked like the robot was trying to do some very strange incantation dance but kept losing his footing.

If there is an elegant way to complete it I honestly want to see haha.

EDIT: I looked it up. Wow

Yeah, mine didn't look anything CLOSE to that
 
I'd be shocked if anyone's managed to look dumber than mine.

8PNuaBz.png
 
Didn't quite get that far, but mine did have a lot of walking into nothing and jumping for no reason.
 
Thank you so much for putting that up there. I'm definitely am going to pick up that book once I get paid again. :D
It is a pretty popular book, so it might be worth checking if you can get it from your library. Just be warned, that's no "for dummies" book. Difficulty curve ramps up too fast IMO, but if you can stick to it, you will be able to read and write code.

I got through level 10 by noticing that to get to both blue tiles, you have to get to the top step in that middle staircase twice. So I made one function ->, ->, ->, jump, left, jump, jump. The next function gets you to the blue tile on the left. After that you jump down to where you started and run the first function again. The remaining inputs are simply right, jump, jump, ->, light. (If I'm remembering all that correctly!)
 
  • Like
Reactions: Tomo009
I picked up the 2nd edition of that book. Once I get back from work tonight, i'm definitely am going to get started on it.
 
If you can't afford the book, can't be damned to wait for the book, or just want a crash course, Microsoft Virtual Academy has a series of free lectures that teach programming concepts, C++, C#, DirectX, Windows development, and a bunch of other really amazing and helpful things. Each one runs about 8 hours long, but it's enough to get your feet wet and teach you everything you need to know to start experimenting.

Also, if you have a college email (even if you've long since dropped out or graduated, as long as you have an edu address) you might be entitled to a free copy of Visual Studio 2013 Professional. Dreamspark is another Microsoft site that just gives out free shit, in this case a bevy of software tools to help you get off the ground. If you don't have an edu email, there are Express versions of Visual Studio and such available that have most of the functionality of the full versions.

Basically, programming is like trying to convince somebody else's 3-year-old to build improvised explosives, bomb a specific Al Qaeda hideout in lower Manhattan without any civilian casualties, and come back to you for debriefing, except every now and again he watches a whole bunch of TV between you talking to him and the assigned mission time which puts a whole bunch of wrong ideas in his head about what you told him to actually do. Even if they get it right, rampant paranoia about what they actually did will shake inside you, especially if they return home in record time.