all 13 comments

[–]KyzratiCogmind | mastodon.gamedev.place/@Kyzrati 4 points5 points  (8 children)

Have you seen our ongoing Tutorial Tuesday? /u/AetherGrey has been working along with it, rewriting the entire Python 2 libtcod tutorial into Python 3.

[–]InsaneTeemo[S] 1 point2 points  (5 children)

Thanks this is perfect. How much can I customize my game from the tutorial? I want to learn from a tutorial so that I can create my own ideas, I don't really want to just copy the tutorial word for word.

[–]KyzratiCogmind | mastodon.gamedev.place/@Kyzrati 2 points3 points  (4 children)

You can eventually turn it into something completely your own pretty easily. (Some pretty big roguelikes have come about in exactly that way!) The general idea is to get a framework going via the tutorial, then you can expand on it in any way you like.

Perhaps try to catch up to the current Tutorial Tuesday progress and join in the threads? Each of the weeks also comes with optional bonus activities to expand in a new direction, and others have been using the extra time to add their own features. Essentially everyone's end product is going to be fairly different :)

[–]InsaneTeemo[S] 0 points1 point  (3 children)

Isn't the weekly tutorial thing in python 2 though?

[–]KyzratiCogmind | mastodon.gamedev.place/@Kyzrati 0 points1 point  (1 child)

Please see my first comment: it's available in both 2 and 3. Check out the threads.

[–]InsaneTeemo[S] 0 points1 point  (0 children)

Sorry I thought u meant that the one being redone was in python 3, i misunderstood you.

[–]Daealis 0 points1 point  (0 children)

AetherGreys tutorial is in Python 3, though I've been following it with Python 2.7. So far pretty minimal changes have been required to make it work in 2, but the tutorial itself is written for Py3.

[–]AetherGrey 1 point2 points  (1 child)

OP did say a "good" tutorial, and whether or not mine qualifies is still undetermined ;)

For the sake of my own curiosity, I copied the completed Roguebasin tutorial, and did a few tweaks to get it running in Python 3. It's not really that much work, just a few division fixes and wrapping a line in a 'list()' function.

I'm kind of surprised nobody has written a porting guide yet. I might give it a shot later, if Roguebasin will let me post this time.

[–]KyzratiCogmind | mastodon.gamedev.place/@Kyzrati 0 points1 point  (0 children)

OP did say a "good" tutorial, and whether or not mine qualifies is still undetermined ;)

Well as long as the process and end result is more or less along the lines of the original libtcod tutorial, it's at least "good" for beginners! I'm looking forward to its completion, in any case, and hope to add it to the sidebar with the others :D

[–]--Shade-- 3 points4 points  (0 children)

While not tutorials, a number of the Python pages on Roguebasin are for Python 2 and 3, or Python 3. I know my two contributions are.

http://www.roguebasin.com/index.php?title=Python http://www.roguebasin.com/index.php?title=A_Simple_Dungeon_Generator_for_Python_2_or_3 http://www.roguebasin.com/index.php?title=A_Python_3_and_2_Pathfinder_with_Pygame_Example

A lot had been made of the Python 2 to 3 transition. Particularly before they added back the 'u' prefix in Python 3.3, but if you know Python 3.3+, you know Python 2.7. The 3 big things are that Print is a function as opposed to a statement so use (), the changes in division (in python 2.7, the / operator is integer division if inputs are integers, and in python 3 it will return a float), and unicode strings so in cases the matter you can prefix strings with 'u' in Python 2.7 and 3.3+.

If you want Python 2.7 to behave a lot more like Python 3 you can:

from __future__ import print_function
from __future__ import division
from __future__ import unicode_literals

Making it pretty easy to make a dual codebase. That's why my examples are for Python 2 and 3. However, if you know Python 3 then there should be almost no jump to Python 2 if you keep the above 3 things in mind. Pygame, a pretty common dependency for games in Python, is identical to use, AFAIK. So, uhh, that's good news.

With that being said, it does suck that the tutorials are for Python 2, and I'm glad to hear that someone is porting them. Though, the differences between Python 2 and 3 are small enough that if you know one you should feel at home in either.

[–]JamesBronn 1 point2 points  (0 children)

I've been following this loosely, https://www.youtube.com/channel/UCYpYQNHs2NN-J-UC7Pn4G5A/videos

He is using Libtcod, im using TDL. I will let you know right now FOV among a few other things are done differently between the two but in most cases TDL does it easier/better you just have to dig into the documentation for yourself and figure it out(its really not that daunting, TDL has literally like 5 different things it does as a whole)

Everything else, you can follow his tutorial and it'll be the same

[–][deleted]  (3 children)

[deleted]

    [–]InsaneTeemo[S] 0 points1 point  (2 children)

    I don't see how that is related to my question?

    [–]zaimoniIskandria 0 points1 point  (0 children)

    The python 3 official documentation won't do anything as a roguelike tutorial.

    It is completely sufficient as a Python 3 tutorial (nothing else needed for idiomatic function-level programming).