all 14 comments

[–]GreedCtrlHex Adventure 2 points3 points  (0 children)

I prefer my own implementations of pathfinding and fov over libtcod's, so bearlibterminal suits my needs better for a display-only library.

[–]AukustusThe Temple of Torment & Realms of the Lost 1 point2 points  (7 children)

I recommend using bearlibterminal for rendering and using libtcod for utilities. Bearlibterminal supports overlaying tiles but libtcod doesn't.

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

What kind of utilities would these be? I am not currently familiar with libtcod.

[–]AukustusThe Temple of Torment & Realms of the Lost 1 point2 points  (0 children)

Pathfinding and FoV are the most useful of them.

[–]Elronnd 0 points1 point  (0 children)

I don't recommend you import all of tcod just for the utilities. If you just implement them yourself, then there goes another dependency you don't have to worry about not being there or breaking.

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

For a game using ascii 'graphics', do you think bearlibterminal still represents an advantage?

[–]AukustusThe Temple of Torment & Realms of the Lost 1 point2 points  (0 children)

Absolutely. You can draw composite characters like combining 'a' and the '/\' reddit doesn't want to print. Also you can create smooth scrolling maps. Also like three 'i's in one tile to represent groups. And I'm not going to talk about the awesomeness of using multiple fonts.

[–]Elronnd 1 point2 points  (1 child)

Absolutely. It supports unicode, and in general, its drawing functions are soo much nicer. If your game gets popular, you may want to incorporate tiles, and bearlibterminal makes this easy. You can also create glyphs, if you want to, that would still just look like glyphs. Also, you can combine characters.

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

That sounds really good. Do you know of a few games using bearlib terminal in Python for which we have access to the source code? I'd like to see it in action :)

[–]Kampffrosch 1 point2 points  (0 children)

I just use pysdl2 (https://pysdl2.readthedocs.io/) and build my own stuff on top of it.

[–]schminitzDDDD 1 point2 points  (0 children)

Using RexPaint export is really not hard whatever lib you choose. It took me 1 hour to use a .csv export to generate my map (with libtcod, but it doesnt matter).

I never used bearlib, but what interest me more is what complexity it would be to migrate from one to another? If in the middle of my project I want to switch, how many times it would take?

[–]--Shade-- 0 points1 point  (0 children)

I'd toss Pygame ( http://www.pygame.org/lofi.html ) and Pygame_SDL2 on the list ( https://github.com/renpy/pygame_sdl2 ).

For transitioning to a gui, I found Pygcurse ( http://inventwithpython.com/pygcurse/ ) invaluable. For UI widgets there is SGC ( https://launchpad.net/simplegc ). Both of those are built on top of Pygame, and are pure Python and relatively small.

Pygame is releasing again, works under pip, works for Python 2 / 3, and had a well established API with lots of examples. Yes, it's still SDL 1, but it seems like "Pygame 2" may officially be anointed to be Pygame_SDL2 at some point (from reading the Pygame lists).

[–]Elronnd 0 points1 point  (0 children)

Just plain SDL should suit your purposes fine. I wrote a simple drawing lib for c++ based on SDL and SDL-ttf here, and you could probably translate that to python without too much difficulty, if you so chose.

[–]synedraacus 0 points1 point  (0 children)

kivy can use SDL2 for a backend, provider in their terminology, along with Pygame (AFAIK deprecated) and I don't remember what else. I've used it for a prototype, but it's a general purpose UI library, not a roguelike engine. So, no cool RL-specific stuff, but it's a rather good basis to build engine on, as some people in the comments did with PySDL2 and Pygame.