So you want to learn to program?

  • Thread starter Thread starter FAST6191
  • Start date Start date
  • Views Views 29,653
  • Replies Replies 67
  • Likes Likes 36
Hey, so now that I've finally conquered being in debt, I have had on the mind the idea of porting IKEMEN to something like the Switch. Specifically, IKEMEN-GO:

https://github.com/Windblade-GR01/Ikemen-GO

Ikemen is essentially a more open source version of MUGEN, with support for things like Netplay and has some of the features that one would expect of a game that uses a controller as opposed to depending on the keyboard to do basic things like pausing the game, changing the resolution, etc..

How hard is performing a port job for someone's first programming project? It seems, as far as I understand, that one of the difficulties of porting a lot of things to the Switch is converting x86-based code to ARM64, or aarch64 as it's also known as. Which might get it working on Ubuntu-L4T, but I take it that more work would be required to get it to HOS proper?
 
I would have to go have a look at the code, and probably also go learn what the Switch has to offer.

Porting gets harder when the base code leans into the hardware itself (which you do gain a speed boost for, as well as possible simplification -- for something like a console why write a full control handler that could accept an entire unicode range when the console has a fixed set of controls?) or leans into a library that is not available/has no equivalent or leans into an OS (though that mostly still means library). Similar things if you are converting between languages, especially if they are radically different in scope of what they handle (the web browser we are likely talking through is several dozen steps removed from the code the CPU sees which needs a whole lot more handled)
The baseline code can also be a thing -- ever wondered why many of the lesser PC ports might be fixed framerates rather than "whatever my PC can do"?

At the same time the best first project is one you will see through even if it is theoretically harder than something more commonly seen. You can bite off more than you can chew too however -- there are aspects of programming that loom larger than some others with 3d maths (guess what games use a lot of), security (basically a whole field unto itself, indeed cryptography is but a small part of security and is a field unto itself though you might well be spared that one here), things with established protocols (basic networking is not so bad, inventing your own networking is not going to get you far), some of the real time/low latency stuff (guess what can be useful in games).


To that end I might say first get the project compiled.
After this maybe try making some mods for it. Some might prefer to spend time documenting it.
After this if you want to try isolating parts of the code that would make a port effort harder (if say it has a bunch of assembly code) then rewrite that as a more generalised piece of code (try to keep speed in mind as well) as that will start to give you a taste of what porting will entail (you will probably have to do that a few more times, or maybe go in reverse and take some aspect of the code that needs to run fast and go for assembly to get it down). Assembly code fragments are not the only aspect of that, if it has a single function written to take advantage of some library you might try getting rid of that, or if it is written in a high level language (some helper program maybe) then get rid of that.

At the same time as that if you want to get a compiler setup going for the target of the would be port then you can do that too. Might even spare you from becoming too dependent on say full fat desktop libraries, conventions, lack of resource caps, and programming suites (though smashing a big boy say Windows IDE to accept programming for the Switch will probably teach you a lot).
 
@FAST6191 Can you or anyone else vouch for how good these ebooks are for getting into programming?

https://www.fanatical.com/en/bundle/c-plus-plus-bundle

I see it along with others that are big deals on learning materials that are otherwise an entire Walmart paycheck, and this store has these (along with a lot of games) on sale for prices that even Steam doesn't usually discount to, and wanted your input.
 
@FAST6191 Can you or anyone else vouch for how good these ebooks are for getting into programming?

https://www.fanatical.com/en/bundle/c-plus-plus-bundle

I see it along with others that are big deals on learning materials that are otherwise an entire Walmart paycheck, and this store has these (along with a lot of games) on sale for prices that even Steam doesn't usually discount to, and wanted your input.

I can recommend this book for learning hardware design (software is easier if you know what the hardware is actually doing) it's a college book so it isn't the cheapest but it's well worth it for the info:

url.jpg
 
  • Like
Reactions: Silent_Gunner

Site & Scene News

Popular threads in this forum