So you want to learn to program?

Silent_Gunner

Crazy Cool Cyclops
Banned
Joined
Feb 16, 2017
Messages
2,696
Trophies
0
Age
29
XP
4,727
Country
United States
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?
 

FAST6191

Techromancer
OP
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,348
Country
United Kingdom
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).
 

Silent_Gunner

Crazy Cool Cyclops
Banned
Joined
Feb 16, 2017
Messages
2,696
Trophies
0
Age
29
XP
4,727
Country
United States
@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.
 

Deleted member 668561

GBAtemp Official Psychonaut
Banned
Joined
Jan 29, 2008
Messages
1,875
Trophies
0
Location
somewhere within 4 dimensional space-time
XP
2,654
Country
United States
@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

General chit-chat
Help Users
  • No one is chatting at the moment.
    Psionic Roshambo @ Psionic Roshambo: Taylor Swift death metal AI cover please lol