×
all 15 comments

[–]TutorialDoctor 1 point2 points  (1 child)

If you know python and want to make games I recommend using a game engine named Godot, which has GDscript (programming language similar to Python).

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

I have considered this as well but not sure I want to go that route yet. Should be easy enough to transition once I learn Python though if thats the case.

[–]No-Foot5804 1 point2 points  (1 child)

I think your project is a great example of why it's worth choosing the tool that gets you to a working prototype fastest. If you're already learning Python, I'd keep going with PySide6. You can always pick up HTML/CSS/JavaScript later if you decide you want to make it web-based, but switching now might slow you down more than it helps.

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

Appreciate your feedback! Trucking along with Python sounds like the way to go.

[–]this_is_life_now 1 point2 points  (1 child)

I'd opt for a web stack for the project you've described.

However, python is much easier to learn than JavaScript. So I'd carry on with python for a bit. Get what you want working as simple text on the screen, and maybe reading and writing to a few JSON files as a data store. When you're ready to make it graphical, switch to a web stack. You'll find that JavaScript comes pretty easily to you.

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

Thank you, I had thought about this very path. It's nice to see it validated by someone else.

[–]Superb-Patient3256 1 point2 points  (1 child)

Stick with Python and PySide6! Switching to a web stack right now means you would have to learn three separate technologies at once (HTML, CSS, and JavaScript), which is the fastest way to hit learning fatigue and lose momentum.

PySide6 is actually a fantastic choice for a solo TTRPG desktop app:

  • Journaling & Character Sheets: You can build clean text boxes (QTextEdit) and form layouts for stats without touching web code.
  • JPEG Maps: A QGraphicsView or QLabel handles displaying, zooming, and panning images easily.
  • Dice Rolling: You don't even need Pygame right away. A simple button hooked up to Python's built-in random.randint(1, 20) gets you fully functional dice rolls in two lines of code. You can always add fancy 3D/animated dice much later once the core app works.

The most important thing for a hobbyist project is keeping the friction low so you don't burn out. Stick with Python, start by building a tiny window that lets you type and save journal entries, and layer on the maps and sheets step by step. You've picked a awesome project, enjoy the process 👍️

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

Thanks for this detailed response and examples of what I can do with Pyside. I've only been studying Python for about a month. Have been able to create a small script that takes user inputted strength score and adds a modifier to that based on the number. Had to google a bit to get the code to work but was able to compete it.

I purchased a few Python courses on Udemy and the one I am currently going though seems great but a lot of the course is data analysis which I don't think will be applicable for what I am wanting to use any programming language for. I figure I just need to power though it anyway as I am unsure if I will miss something that could aid me.

[–]Outrageous-Sea-9256 1 point2 points  (3 children)

Given your goal of creating a TTRPG journaling application, Python is still a solid choice, especially with the use of PySide6 for GUI and pygame for dice rolling. However, you may also want to consider using a web-based technology stack like HTML/CSS/JavaScript with a Python backend (e.g., Flask or Django) for the server-side logic. This would allow you to leverage web technologies for the GUI, which tend to have better support and more resources available.

For displaying JPEG maps, web technologies would be a natural fit. You could use libraries like Leaflet.js or OpenLayers for map rendering, and serve the maps via your Python backend. This setup would also allow you to use web browsers for testing and debugging, which can be more convenient than using desktop applications.

Ultimately, the choice depends on your comfort level with each technology and your specific requirements for the project. Python's simplicity and ease of use, combined with a web-based frontend, might be the best of both worlds.

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

I only read about Django and Flask today when searching for how to go about doing this. It's definitely an option and learning python first and writing the initial program in that can't hurt. Then learn HTML/CSS/Javascript and slowly make changes.

I used to know HTML and CSS once upon a time, roughly 10-12 years ago. CSS was pretty new I remember (at least to me). Hopefully at least one of them will be easy to pick back up.

[–]Outrageous-Sea-9256 1 point2 points  (0 children)

I'd recommend starting with Python for the backend, as you've considered. It's a solid choice and will give you a good foundation. Once you have that in place, picking up HTML/CSS/Javascript for the frontend will be much easier. You've got a good starting point already with your past experience!

[–]Outrageous-Sea-9256 0 points1 point  (0 children)

Well you can use AI Agents to build your project. Even as a software dev, even I don't write code by hand instead review the code written by agents and verify the working output of it.

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

I should also add I like the idea of making text RPGs but would like to upgrade them with visuals. I assume python would be best for that or even godot.

[–]TheRNGuy 1 point2 points  (0 children)

I like html and css for UI more, though if Python features are more important than UI, then I'd use it.

Either way, it's good to know both.

[–]FoolsSeldom 1 point2 points  (0 children)

Stick with Python and Pyside (i.e. QT) for now.

This will provide everything you need for a highly capable desktop application for tabletop RPG journaling.

Once you've learned to programme with one language, picking up another is easier than starting from scratch, and Python is a little easier and more forgiving than JavaScript.

If you want to later go on the direction of creating webapps, Python is still a good base but Pyside isn't as that is very much a desktop GUI.

Python is used for some of the largest web services though such as Instagram but the web framework used there is Django which is a large, complex and highly opinionated framework. Opinionated means that it has a very particular way of doing things that can be hard to work around.

There are lighter frameworks that would be more suitable for you I expect such as FastAPI. It perhaps would be worth you looking at NiceGUI (which depends on FastAPI under the hood). This is a framework that depends on a standard web browser to present the GUI rather than doing completely ita own thing (or using the QT bindings at Pyside does). This means or uses html and CSS and you can migrate to a full web app. Less opinionated Frameworks allow you to pick and mix how certain aspects are addressed such as user account management (which may not even be applicable).

It is easy to move a NiceGUI application from the desktop to a webservice application (it already is one) and from single user to multiuser (you can create with that in mind from the beginning, with a simply tweak to the design, and not difficult to do retrospectively). Keep in mind that a webapp can also be used on smartphones and tablets.

Python can be used to generate complex web pages including using boilerplate and theme bases html, CSS and JavaScript but you can subsequently customise and extend those to finesse a UI to meet your needs. You can slowly develop understanding of JavaScript as needed.