Comments

Log in with itch.io to leave a comment.

Viewing most recent comments 1 to 30 of 70 · Next page · Last page

Just want to say thank you, I love this program, it's so much fun it's so versatile it's amaaaaaazing!

(+1)

Became interested in this as MrmoTarius mentioned he uses it in his work. The documentation says “Check out @Playscii”, but its been a few months since I clicked to follow you on the SoMe formerly known as twitter and the request is still pending. Is the account no longer active?

(+1)

Correct, I'm no longer active on Twitter. Thanks for pointing out that link in the docs, I'll amend that part to no longer mention twitter. Development has been very dormant for the past few years, but any announcements or updates will be posted on https://cohost.org/playscii

Hi, i was having trouble running this from source (using Debian 11 "bullseye"). I have installed all of the relevant dependencies, but when i try to run "python3 playscii.py" it throws back this error,

Traceback (most recent call last):

  File "/home/USERNAME/playscii/playscii/playscii.py", line 25, in <module>

    import sdl2

ModuleNotFoundError: No module named 'sdl2'

I was wondering if you could possibly assist? Thank you for reading!

(+1)

Hm, if you have all the dependencies installed, see if you can run "import sdl2" from the python REPL environment (ie run python3 from the command line). Do you get the same error from there?

(1 edit)

i've now solved the issue [had to reinstall pysdl2 and pysdl2-dll, also installed pillow 9.5 (as opposed to 10.0) for the ANTIALIAS error i got.] but now when i run python3 playscii.py it throws back this 

File "/home/USERNAME/.local/lib/python3.9/site-packages/OpenGL/contextdata.py", line 40, in getContext

    raise error.Error(

OpenGL.error.Error: Attempt to retrieve context when no valid context

(+1)

Depending on what type of GPU you have, there's a billion reasons the GL context creation could be failing. Does the log print anything before it hits that error? My code tries to output what it's doing as it goes but IIRC that's pretty early in the process.

  CPU: x86_64

  GPU: Mesa/X.org - virgl

  OpenGL detected: 3.1 Mesa 20.3.5

  GLSL detected: 1.40

  Vertex Array Object support found.

  Maximum supported texture size: 16384 x 16384

  Detected screen resolution: 1366 x 688, window: 1092 x 550

Detecting software environment...

  OS: Linux-5.10.114-16025-ge75506b9d98e-x86_64-with-glibc2.31

  Python: 3.9.2 (default, Feb 28 2021, 17:03:44)  [GCC 10.2.1 20210110] (64bit)

  Modules: PySDL2 0.9.16, numpy 1.26.4, PyOpenGL 3.1.7, appdirs 1.4.4, PIL 9.5.0

  SDL: 2.28.0 SDL-release-2.30.0-0-g859844eae, SDLmixer: 2.6.1

/home/USERNAME/playscii/playscii/playscii.py:429: DeprecationWarning: ANTIALIAS is deprecated and will be removed in Pillow 10 (2023-07-01). Use LANCZOS or Resampling.LANCZOS instead.

  img = img.resize((32, 32), Image.ANTIALIAS)

Traceback (most recent call last):

  File "/home/USERNAME/playscii/playscii/playscii.py", line 1170, in <module>

    app = Application(config_dir, documents_dir, cache_dir, logger,

  File "/home/USERNAME/playscii/playscii/playscii.py", line 315, in __init__

    self.gw = GameWorld(self)

  File "/home/USERNAME/playscii/playscii/game_world.py", line 118, in __init__

    self.grid = GameGrid(self.app)

  File "/home/USERNAME/playscii/playscii/renderable_line.py", line 60, in __init__

    GL.glVertexAttribPointer(self.pos_attrib, self.vert_items,

  File "/home/USERNAME/.local/lib/python3.9/site-packages/OpenGL/latebind.py", line 63, in __call__

    return self.wrapperFunction( self.baseFunction, *args, **named )

  File "/home/USERNAME/.local/lib/python3.9/site-packages/OpenGL/GL/VERSION/GL_2_0.py", line 469, in glVertexAttribPointer

    contextdata.setValue( key, array )

  File "/home/USERNAME/.local/lib/python3.9/site-packages/OpenGL/contextdata.py", line 58, in setValue

    context = getContext( context )


hopes this helps! i really appreciate you assisting with all of this lol, thank you.

Wild guess, but is your desktop using X11 or Wayland? PyOpenGL is pretty ancient and creaky at this point, and I recall Wayland making it trickier in various ways for it to get a context it considered valid.

If you are indeed running Wayland, I'd say try to run from the latest Playscii source (last public commit was August 2022) as I did add a few things after 9.17.1 for working on newer Linux desktops.

(2 edits)

I have a bug where the screen looks like this. does someone know how to fix it?

Been messing around with this for a little bit and I'm absolutely loving it! Excellent work! :>
Although I do have to ask, is there a way to change the default Save folder location? I looked through the documentation and the config file and didn't see any way to change it..

Hm, looking at the source code it looks like the save dialog defaults to the user Documents/Playscii/ folder, but will change to whatever directory you last successfully saved something to, within the same session. Not the same as being able to set something that's persistent across sessions, but maybe that help? I'd have to think carefully about how to let users override some of the default paths it uses.

Sorry, I can't figure out how to make a clevercloud account for the following issue report. It keeps giving me an OAuth error of some kind.

Anyway, for some reason I can't get playscii to list files except for the folders art, artscripts, charsets, formats, games, palettes, screenshots, Documents, My Games, My Music, My Pictures, My Videos, and its own - Playscii. Also, any file it creates itself while I am using it seems to be visible, but not the pre-packaged psci files. This makes importing anything impossible.

I am running Microsoft Windows 11 Pro, Version: 10.0.22621 Build 22621 . My system is x64. If there's any other information you'd need, please let me know and I'll find it for you.

(1 edit) (+1)

This is almost certainly a permissions issue, eg which directories an application is allowed to access. I don't have a Windows 11 system to test on, but I wouldn't be surprised if they changed a bunch of stuff in the name of security.


Do you know of any other 3rd party applications, particularly open source ones with public bug trackers, that have had this kind of issue? If so I could refer to what they did and maybe that'd help us fix this issue.

No idea if it's open source, but I think I remember Your Only Move Is Hustle having adjacent issues at first - but that was made in godot, so the solution was probably something that doesn't really help. As a last ditch effort, I've tried running it as administrator but there was no change.

Actually, as I was writing this I realized that godot engine itself is open source and has public bug trackers... Maybe you could take a look at how it exports executables which mostly avoid being flagged?

(+1)

What do you mean by "being flagged"? My understanding is that permission issues aren't a result of some "malicious software" detection heuristic, just a set of rules that applications have to follow to be able to do things like access different parts of the file system. Not knowing anything about how those rules might have changed for Win11, I could be wrong but that's my guess as to why you can't get a file listing for certain directories on your system from within Playscii.

You probably understand that better than I would, yeah. I don't know much about permission architecture. Most of my experience in programming is in the aforementioned engine which handles this part for me, as well as some early-life python doodling. Do let me know if you figure this out, but I myself don't have the experience required to help fix the bug; I was just affected by it.

Hi, I'm just wondering whether you'd consider it possible to run Playscii on ChromeOS' Linux terminal; or, specifically, ChromeOS v116.0.5845.168, and Debian Linux 11.0 (Bullseye). Because, apart from my PC, that's the platform it'd be fun for me to use it on.

I've downloaded your Linux ZIP file and made substantial progress in implementing it, but have encountered the following error, outputted to the Linux terminal: 

"OpenGL.error.Error: Attempt to retrieve context when no valid context"

Also, I'm actually inept with this sort of thing, so it's my assumption that in order to use Playscii, I've got to run the "playscii.py" file, because attempting to run which has been the cause of this error.

Thank you!

I've never used ChromeOS and can't offer any support for it. That error message suggests that Playscii failed to create an OpenGL draw context, which is the most basic initialization step after the window itself is created. I don't have a clear understanding of what the OpenGL/driver environment is like in ChromeOS and thus don't know why it would fail. If you're running "python playscii.py" from a terminal (which would be the correct way to run from source), are you seeing any logged lines prior to that error? Playscii logs every step of its initialization and it would be good to know how what it reports up to that point.

Thank you for replying so quickly! Here's the full terminal log, following my inputting of "python3 playscii.py":

UserWarning: Using SDL2 binaries from pysdl2-dll 2.28.2

Playscii v9.17.1

Loading config from /home/spak0002/.config/Playscii/playscii.cfg...

Config loaded.

Detecting hardware...

  CPU: x86_64

  GPU: Mesa/X.org - virgl (Mesa DRI Intel(R) UHD Graphics 600 (GLK 2))

  OpenGL detected: 3.1 Mesa 21.2.6

  GLSL detected: 1.40

  Vertex Array Object support found.

  Maximum supported texture size: 16384 x 16384

  Detected screen resolution: 128 x 128, window: 102 x 102

Detecting software environment...

  OS: Linux-5.15.117-19680-g54e910f94133-x86_64-with-glibc2.31

  Python: 3.9.2 (default, Feb 28 2021, 17:03:44)  [GCC 10.2.1 20210110] (64bit)

  Modules: PySDL2 0.9.16, numpy 1.25.2, PyOpenGL 3.1.7, appdirs 1.4.4, PIL 9.5.0

  SDL: 2.28.0 SDL-release-2.28.2-0-g031912c4b, SDLmixer: 2.6.1

/home/spak0002/Organised/playscii/playscii.py:429: DeprecationWarning: ANTIALIAS is deprecated and will be removed in Pillow 10 (2023-07-01). Use LANCZOS or Resampling.LANCZOS instead.

  img = img.resize((32, 32), Image.ANTIALIAS)

Traceback (most recent call last):

  File "/home/spak0002/Organised/playscii/playscii.py", line 1170, in <module>

    app = Application(config_dir, documents_dir, cache_dir, logger,

  File "/home/spak0002/Organised/playscii/playscii.py", line 315, in __init__

    self.gw = GameWorld(self)

  File "/home/spak0002/Organised/playscii/game_world.py", line 118, in __init__

    self.grid = GameGrid(self.app)

  File "/home/spak0002/Organised/playscii/renderable_line.py", line 60, in __init__

    GL.glVertexAttribPointer(self.pos_attrib, self.vert_items,

  File "/home/spak0002/.local/lib/python3.9/site-packages/OpenGL/latebind.py", line 63, in __call__

    return self.wrapperFunction( self.baseFunction, *args, **named )

  File "/home/spak0002/.local/lib/python3.9/site-packages/OpenGL/GL/VERSION/GL_2_0.py", line 469, in glVertexAttribPointer

    contextdata.setValue( key, array )

  File "/home/spak0002/.local/lib/python3.9/site-packages/OpenGL/contextdata.py", line 58, in setValue

    context = getContext( context )

  File "/home/spak0002/.local/lib/python3.9/site-packages/OpenGL/contextdata.py", line 40, in getContext

    raise error.Error(

OpenGL.error.Error: Attempt to retrieve context when no valid context

Hmm, I'm not sure what to make of that error. So this crash occurs as you're launching the program? It looks like you're meeting the minimum required version #s for OpenGL and GLSL support. The only thing odd from that log output is your "detected screen resolution" of 128x128 and window size of 102x102 - Playscii tries to enforce a minimum window size of 320x240, as various things get weird below that. I'm not sure that that's the cause of this crash though. Without a ChromeOS device handy I'm really not sure how to go about troubleshooting it. I searched for ChromeOS (and Chrome, and "virgl") on the PyOpenGL mailing list to see if anyone had ever confirmed it even ran on that system, and didn't find anything... but PyOpenGL is also an old and very quiet project at this point.

Sorry I can't do more to help! If you're an experienced Python programmer you might try running some of the PySDL2 (the library that creates the window, handles input, and does other stuff) and PyOpenGL (the library that issues commands to the OpenGL context) examples (or write your own if they don't exist), just to see if those respective modules can even run on your hardware.

(1 edit)

Sure, I’ll try running some of those, and do some Googling in that respect, as well.

But, if that isn’t fruitful, I’m just gonna have to settle for using Playscii exclusively on my PC, is my feeling. Which is perfectly fine, of course; Playscii’s super interesting, and having it only on one device isn’t going to remotely discourage me from using it.

Thank you for the help!

Deleted 1 year ago
Deleted 1 year ago

Hi, I have a bit of a problem: for some reason I can't use left-click to interact with things. I need to hold down lmb and then move my mouse like a pixel to make the click actually count. My mouse works perfectly in everything else and right-click works fine. I haven't changed anything in the settings (at least I think so). If anyone knows how to fix this please tell me. I don't want to reinstall playscii, because I don't know if that will fix the problem. Thanks

Has this always happened? What OS are you running?

"binds.cfg" in your config dir is where the key bindings are defined, you could have a look at that file and see if anything looks out of the ordinary. i think the behavior of the mouse buttons might be hardcoded though.

Just found a fix: I just had to replace the binds.cfg (and maybe playscii.cfg) with the default ones. I think the reason that happened was because I was trying to run endless ladder climbing 2 and was messing around with the confing to try and make it work. Still thanks for replying!

Also, I wanted to ask: Is there a possibility of a better, standalone version of the playscii import feature? I'd love to see, or even make, something like that (with the custom palettes/colors from image and select a charset). But I have no idea how to code in anything :/

I've thought about this a lot over the years since it's such an obviously slow process, would lend itself extremely well to a multi-core and/or GPU accelerated approach, but it's never quite been clear how I'd pull it off - I'm not a particularly knowledgeable or powerful programmer in the directions that would make it easy to try those approaches. I'll let you know if I ever figure anything out.

Some of my old notes about it are on the playscii trello board, which I haven't touched in some time:

https://trello.com/b/BLQBXn5H/playscii

Hi! When I run playscii.py I get

"AttributeError: module 'PIL' has no attribute '__version__'". Is there any way to fix this?

What's the full output text when you try to run? Are you running from the command line? Which OS are you running from?

Hi there!
I love the stylised look you could get by using MRMOTEXT by Mrmo (https://mrmotarius.itch.io/mrmotext) and Playscii - I was wondering if there was any chance of porting the image-to-tile conversion to Unity, maybe as a postFX - as a paid asset?

I've barely scratched the surface of the program and I understand you may not have time for this - if so, could you please point me in the right direction to where in the source code you're doing the conversion? Thanks :)

I definitely don't have any time or energy for doing any Playscii support right now, but here's the code that does the image conversion:

https://heptapod.host/jp-lebreton/playscii/-/blob/branch/default/image_convert.p...

(+1)

Hey JP. I've only ever used Playscii for image conversion, which has provided endless enjoyment. I knew it was also a powerful drawing tool, and I'm super jazzed to learn today (after randomly catching your talk at Roguelike Celebration) that it's also a game engine (though puzzled to see there aren't more creations floating around made with it). After sketching out a game concept I've had stewing in my head for a bit, I think this is going to be a great fit.

I wanted to know if you'd consider a few QoL type thoughts I had after poking around a bit & looking through the manual. I do have "Learn Python" as a longish-term goal, so perhaps there's a way I can kludge it myself someday, but:

• Is it programmatically possible to pan an Art while the char/color picker's open?

• I'm sure this will improve with time, but a shortcut I could see using a lot is the ability to cycle through tiles. Going back to the picker to find the exact right tile takes a moment like a medium size speed bump. Holding a modifier and scrolling through active tiles to paint would rock hard. I actually hope this is a low-key feature I'm missing.

• Last one, because threes — perhaps a toggle to lock zoom on Art center? Could be a nice default to keep Art in frame at multiple zoom levels. 

With news that Adobe's buying Figma, which is neither here nor there, it's real nice to have creative software that works and is fun and good and not terrible in every way. Thanks for your hard work.  👋

(1 edit) (+1)

Funnily enough, most of this was corrected or worked-around by switching to PC (and a day getting up to speed with the toolset)! Feels like a native app here. :) 

(1 edit)

Hi! first of all, I love Playscii! it's an amazing piece of software and I'd like to thank you for releasing it for free.

Recently after long use I've hit a roadblock:

When importing folders with images, playscii stops at random images, however the amount of frames corresponding to the number of images that were supposed to be imported are created.

The error is "bad frame" but the problem is that I had imported successfully that folder with images before, and suddenly when trying again, it stops. So if there were a problem with indexing it wouldn't have imported it the first times.

I'm on a Mac running Catalina 10.15.5 using a Intel i9 9900k and an AMD RX580 graphics card.

I just want to emphasise that previously i was able to import hundreds of images on a single folder, and now when I try to import the same folders, it shows the error I mentioned above.

Included is a screenshot of the log.

Tried reinstalled, uninstalling to no avail.

Sadly I'm not code savvy to deploy one of the forks cos they lack of an installer.

Hopefully you could help me out because I'm in the middle of a project that needs to be finished pretty soon. 

Thank you once again!


I'd like to see if I can reproduce this on my system. If you feel comfortable sending me the source file(s) you're trying to convert, email me at the address on this page: http://vectorpoem.com/contact.html

I will email you now. I must say it happens with every folder I have with different images. I think it started happening when i upgraded to python 3.11 but I'm not 100% sure.

Before that, the same problem used to happen but the error was differemt:  "IndexError: list index out of range"

(+5)

Oh hey, it looks like you can't read:

As Playscii's sole author, I have multiple objections to the creation and selling of Non-Fungible Token (NFT) art and do not approve of said use. Legally I cannot stop you but I offer absolutely no support to such users, and I am not interested in engaging with them on this subject. See this section of the project's web page for more information on this.

You will get zero further support from me.

(+1)

Fatal error detected: Failed to open script playscii

Please help. I've reinstalled, etc.

i am trying to play this on my macbook, but it wont even open. I dont even get an error, the app just shows up in my doc for 1 second then disappears. i'd like to know how to fix this because the app seems fun :( ?

(-1)

Mac has become increasingly hard to support given their ongoing efforts to lock down their platform. First question, are you running on one of the new M1/M2 Macs? The build on itch here will definitely not run on those.

(+1)

I had the same problem on my mac, I'm using Big Sur 11.6. I got it starting with JP's instructions at http://vectorpoem.com/playscii/howto_main.html#runfromsource 

I did have to use pip3 instead of pip, like this.

pip3 install pysdl2 pyopengl numpy pillow appdirs pdoc

When I ran this code in terminal, the only library that had a problem was the psydl2. Something about a legacy version and building a wheel. Kinda over my head tbh. Running playscii.py  tells me it cant find the mixer.

So I had to download the .dmg file from https://github.com/libsdl-org/SDL_mixer/releases and run it to get the SDL2_mixer.framework folder. I moved this folder to my Macintosh HD / Library / Frameworks. 

Now playscii tells me it cant find a document named version. This is what I did to get around it, I don't really know why it works

1 Install Visual Studio Code https://code.visualstudio.com/ and its extension for python at https://marketplace.visualstudio.com/items?itemName=ms-python.python for some reason, using terminal with this process didnt get the same result as VSC

2. find the file named "version" in the playscii source folder.

3. rename it to something else, I renamed mine to version_ so I wound't lose it.

4. select the playscii.py, open with > visual studio code 2. It might tell you not to trust the file, so click manage, then trust. click the run and debug button on the left side bar, then the blue run and debug button. Again it says theres an error, at lines 1080 and 1111. You can press the red square at the top to stop the debug mode. 

5. I changed the file I renamed "version_" back to its original name "version" 

6 run the playscii.py with visual studio code again, and this time it finds the version file and playscii opens!

Sometimes the version issue returns and I'll have to redo steps 3-5 again before playscii will run. 

Hopefully this works for someone else with a mac too! 

Hi there, just wondering if you know why I can't save or export anything. The software says that the file has been saved successfully, but there nothing in the art folder. Thanks

Detecting hardware...

  CPU: x86_64

  GPU: Intel - Mesa Intel(R) HD Graphics 4000 (IVB GT2)

  OpenGL detected: 3.1 Mesa 22.0.5

  GLSL detected: 1.40

  Vertex Array Object support found.

  Maximum supported texture size: 16384 x 16384

  Detected screen resolution: 128 x 128, window: 102 x 102

Detecting software environment...

  OS: Linux-5.18.0-2-amd64-x86_64-with-glibc2.33

  Python: 3.10.5 (main, Jun  8 2022, 09:26:22) [GCC 11.3.0] (64bit)

  Modules: PySDL2 0.9.11, numpy 1.21.5, PyOpenGL 3.1.6, appdirs 1.4.4, PIL 9.1.1

  SDL: 2.0.20 https://github.com/libsdl-org/SDL.git@53dea9830964eee8b5c2a7ee0a65d6e268dc78a1, SDLmixer: 2.0.4

/home/fracshun/Downloads/playscii_source-9.17.1/playscii/playscii.py:429: DeprecationWarning: ANTIALIAS is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.LANCZOS instead.

  img = img.resize((32, 32), Image.ANTIALIAS)

I can't reproduce this on my Arch-based system. That warning at the end there shouldn't have anything to do with file saving or exporting, but I did fix it recently, as well as changing how the desktop resolution is detected on Linux so that it doesn't launch (since a recent SDL2 update, maybe?) as a tiny 128x128 window in this commit a few days ago: https://heptapod.host/jp-lebreton/playscii/-/commit/a1e0fae59d0a8c06d045709da109...

If you're running from source you should be able to download the version of playscii.py there on the code repo and just replace your local file with it. But like I said, I'm guessing those fixes are unrelated to the problem you're seeing.

Two questions that might be relevant:

  1. Does your home directory have a Documents/ folder?
  2. What distro are you running?

Thanks for getting back to me, just realised I was looking in the wrong folder (I was looking in the downloaded Playscii folder rather than the Home/Documents) lol. I'm running Debian Testing and everything is working fine now. Great program btw!

hi, can i know is there a way to change my save folder to another drive?

Hmm, I don't think so. I'll add that to the feature wishlist.

If you save a file to the normal location and then move it somewhere with your file manager, and then open it from that location, you should be able to work with it as normal.

okay i will try that, thank u for the prompt reply! this program is really cool :) 

I need help in using the grab tool it’s pretty, hard to use

The Grab tool doesn't modify the art when you click with it, it just sets the Paint tool's current character, foreground color, and background color to that of the tile you click on. You can get the same effect by having the Paint tool active and simply right-clicking on a tile; the Grab tool is included in the Tool menu more for completeness than anything.

amazing stuff. is there a discord or community? are there tutorials?
Really love this as a game engine.

No discord. The documentation is available from the Help menu as well as on the website: http://vectorpoem.com/playscii/howto_main.html

That documentation covers both Art mode and Game mode. The latter includes writeups of how the example games work, which are included with the program and you can try out on your own.

Aside from one old image -> ASCII conversion howto video, I haven't done any tutorials. What sorts of things would you find a tutorial useful for?

I have some experience designing game systems in a much simpler language, so I think I could knock out some prototypes or demos in Playscii once I get the hang of it.
so far I've been playing around (trial and error), and I watched the youtube video for roguelike celebration
I'm new-ish to python and its conventions, so there's quite a lot I don't know, and a lot that I want to know (I tried Godot with scripting based on Python, and tried my hand at a roguelike and text games in terminal using a python script)
I had a look at the docs and example scripts of the included games, and there's a lot I still don't understand, sadly. The program keeps closing when I try to load a faulty script :P

I saw there are a lot of commands in the docs, but I have no idea how to go about using them, looking them up, etc.,

quite a lot text incoming:

For example,

 # CAMERA #
How can I handle the camera? How could I script a cutscene? Or if I wanted to swap the camera between multiple targets? Can I see some examples?

- I can use camera_follows_player but don't know how to change camera properties like pan speed or zoom level. Do I need a camera instance?
- I don't understand how i should call focus_object, Actually I didnt see focus_object in the generated docs, but in the "game mode" docs.

 # CONROLS#
What is the advantage of Player Class? is there a way to toggle the player behaviour like moving with wasd/arrow keys? I am trying to use a Character to represent player objects instead so I can control multiple objects. Or should I use multiple Player objects?
what If the player has multiple controllable units and can swap between them, or for co-op with 2 sets of controls?

I figured out how to add my own input/ controls to control a Character rather than a player, and experimented with some HUD things okayish. That was a bit simpler.

Orthogonal/Diagonal movement is such that you move faster overall when travelling diagonally. This always bothered me about roguelikes. I like that Dwarf Fortress addressed this. I added my own function to scale x/y values appropriately. Is there an in-built way to handle this? For example, handling radial movement? I should just use trig or pythagorean theorem I guess?

How would I shoot fireballs in 8(etc.,) directions all around the player? How could I shoot a fireball towards the mouse cursor?

I assume I would have some class fireball, then in the actor, they would have their own fireball shooting function? or i could create a function outside of the actor that multiple actors could access?

 # COLLISION #
I got some basic collision stuff working by looking at the shoot em up. I got it so that I can detect when hitboxes overlap, and to add non-colliding classes to hitboxes. Very useful! I'd also like to wrangle something like Line-Of-Sight and (basic) pathfinding.

How can I attach multiple separate types of hitbox to an actor?  I want to use hitboxes to represent ranges like detection, fields, or ranges for various actions, so a single actor might have several distinct hitboxes.
I thought I could use "attach_to" or "attachment_classes" for example, and attached a GameObjectAttachment, and set its collision data, but its hitbox doesnt seem to appear when I view hitboxes. Is this just a definition that I need an instance of? How would I do that?

 # SCOPE #
It might be useful to know what the main intended structural paradigms are. I don't know which scope I should be working in for each task.
Main question is: Do I need an instance? for the world, camera, etc., and many other things, and if so how? sorry for noob questions.
What is the purpose of the syntax like this "self.world.HUD" in a Player (from maze)? I can access the HUD (or other things through this)? is this the world class? it can be accessed from anywhere? or for that matter "self.world.app"? what scope or space does this represent? how does it relate to other objects? This is more like the project scope which manages resources?
 
How would I attach an instance to another instance? Is that impossible? How can I structure my instances with respect to each other to accomplish this? Can I do that from within one of the instances, or should I do this in a room or world or at init or whatever?


 # DOCS/DICT #
Is there a listing of every single command in one place? Or a way to search all of them? Where would I look to find focus_object in the docs for example?
I tried to get the __dict__ of members of a class a few times, but I dont know if this will show me all the relevant members/methods and other things, except by trying it on each object.
I think I'm learning slowly and getting ideas for how I might approach things. I might create a special object to initialise the game objects using its update function, and then have it delete itself when it's done, for example?
Or create some projectiles with a lifespan, which is how I've tried to handle particle systems and projectiles previously.

I'd like to eventually get around to programatically creating "sprites" which seems extremely promising! for example visual representations of state changes to tiles or actors. and of course programatically creating maps would be cool.

I like Playscii for its versatility :P you can go from simple micro projects or have something that will scale well as a custom engine for basically ANY type of game, from management sims, to RPGs, to strategy games, to action games. Really incredible stuff.

Maybe I am a bit too ambitious, but Playscii honestly seems like it could handle any concept I can think of, and that's very exciting. 

I have a little experience designing game systems in a much simpler game-engine language which doesn't have classes, so a lot of things are new to me while I'm trying to learn Python in general.
Apologies for the very long post and many questions. I also considered messaging you on twitter.


Is there a listing of every single command in one place? Or a way to search all of them? Where would I look to find focus_object in the docs for example?

This doesn't cover everything, but Playscii's documentation folder includes docs auto-generated from its own source code, which can also be found online here:

http://vectorpoem.com/playscii/generated/pdoc_toc.html

However it looks like Camera isn't one of the classes I marked for doc generation for this process. If you're wondering about properties like Camera.focus_object, I would say get the project's code by cloning the repo (unless that's already what you did to get Playscii running, ie you're not running the Windows build) so you can search the code and see where all something is referenced. For example, it looks like Camera.focus_object is mainly used in Camera.update to set the camera's position. If you wanted to do custom logic, I'd say leave the camera's focus_object as None and have some other code elsewhere that drives its position every frame, eg from one of your object's update() functions.

Main question is: Do I need an instance? for the world, camera, etc., and many other things, and if so how? sorry for noob questions.

GameWorld and Camera are singletons that are intended to live firmly in the "engine" layer, you shouldn't need to subclass either. Though I'll admit now (7 years since I made some of these architectural decisions) that a Camera could arguably be something you create several classes of to drive different behaviors.

I am trying to use a Character to represent player objects instead so I can control multiple objects. Or should I use multiple Player objects?

There are probably several places in the game mode code that assume a single player character, I have no idea how difficult it would be to add support for multiple players.

How can I attach multiple separate types of hitbox to an actor?  I want to use hitboxes to represent ranges like detection, fields, or ranges for various actions, so a single actor might have several distinct hitboxes.

GameObjectAttachment was made for things like shadows and effects, so there's probably something about it that doesn't behave well if you try to make it collide with stuff. I would say just make a GameObject subclass, sync its position with the player's (or whatever it's attached to) every update, and then do your custom logic in its started_overlapping() function.

But yeah I would say your main source of truth is going to be the code, and the (hopefully adequate) comments I left in it when I wrote it. Secondary to that, the documentation (included and on the website, same docs) I wrote not too long after writing the code. And tertiarily, me in 2022 when my memory's faded a bit and my brain is occupied with other projects.

Good luck! You're not the first person to make a game with Playscii's game mode but you're probably before the 10th person or so. I apologize in advance for anything that's non-obvious, broken, poorly designed, or annoying for any other reason. :]

thanks for the great reply. i am just someone on my own journey. Playscii seems like such a brilliant tool, to me. I hope I could do it justice, in some way, and not let it down... 
It's quite difficult for me to think beyond the paradigm of a main loop, i find, but also quite liberating. The design is so unique.
It really inspires me to think in different ways, whatever they may be.

i think i'm understanding a bit more about the paradigm from looking at the source, but it's rather incomprehensible to me.
what if the player object was driving gameplay by moving through rooms, something like that?
then rooms become more like discretised game segments, whatever that may be, including cut-scenes, controller set-up, whatever...
the player moves from room (game-state) to room... but i still don't know what i'm looking at anywhere i admit.
I'm just going to comb through examples until I grasp it better.

getting an error when launching "failed to execute script playscii" with no other info, currently trying to fix this myself
I've tried reinstalling, restarting and updating windows 10
also tried cloning source, but for some reason it doesn't let me

doesn't look like there's anything of note in the console.log either, Idk if there's any other crash logs or where to find them
```

Playscii v9.17.1

Loading config from C:\Users\theco\AppData\Local\Playscii/playscii.cfg...

Config loaded.

Detecting hardware...

  CPU: Intel64 Family 6 Model 158 Stepping 9, GenuineIntel

  GPU: NVIDIA Corporation - GeForce GTX 1060 3GB/PCIe/SSE2

  OpenGL detected: 4.6.0 NVIDIA 431.07

  GLSL detected: 4.60 NVIDIA

  Vertex Array Object support found.

  Maximum supported texture size: 32768 x 32768

  Detected screen resolution: 1920 x 1080, window: 1280 x 720

Detecting software environment...

  OS: Windows-10-10.0.19041-SP0

  Python: 3.8.10 (tags/v3.8.10:3d8993a, May  3 2021, 11:34:34) [MSC v.1928 32 bit (Intel)] (32bit)

  Modules: PySDL2 0.9.7, numpy 1.20.3, PyOpenGL 3.1.5, appdirs 1.4.4, PIL 8.2.0

  SDL: 2.0.10 hg-12952:bc90ce38f1e2, SDLmixer: 2.0.4

Loaded key binds from C:\Users\theco\AppData\Local\Playscii/binds.cfg

```

oh the code snippet didn't work like I expected, idk how to do that on itch

That "failed to execute script" error is odd, because according to your log Playscii is running, those messages are printed by the program's initialization.

How exactly are you launching Playscii? Are you double clicking playscii.exe, running the exe from the command line, launching it from a shortcut, launching it from the itch.io client app, or something else?

(1 edit)

I've done those, but did it again to test: Double click on it, run as administrator, cmd > playscii.exe, clicked taskbar shortcut, tho I don't have it on itch client

none of these seemed to produce a different log

another weird thing is this wasn't my first time using it, in fact I had just about finished a commission using it lol, I'm glad it didn't interfere with that. I didn't even restart my computer in between the crash and the last use, so I have no idea what could have broken it, I even tried clearing the files in appdata, and reinstalling.

Maybe try checking your Windows Defender threat detection history and see if it's preventing or quarantining something the program needs? I'm pretty sure 9.17.1b should be in the clear detection-wise, but sometimes when Defender snipes a program it thinks is bad, it results in weird errors. That's a not-quite-wild guess though.

I'm actually going to release 9.18 tomorrow, which is built with a totally different version of Python, so you could try that:

http://vectorpoem.com/playscii/playscii_win32-9.18.zip

(windows might complain that you're downloading a file from a non-HTTPS site)

sorry i completely forgot to respond, but I tried this some days ago

I was able to get the version you linked running after going through some menus on windows defender, and it worked like normal after that. Weird thing is that the previous one didn't show up for any viruses when i tried it. Even weirder is that today I tried to recheck my findings, and it started working again.

So it's definitely not a problem with the program, and if I had to guess, I would say it had something to do with windows defender, and maybe the machine learning virus detection that originally flagged your new build, but idk.

anyways thanks for the help, I guess virus detection isn't too easy on indie software

Thanks for following up, I'm glad it's working in at least some form. As far as I know Windows Defender doesn't use any ML for virus detection, it relies on signature database files the way most AV programs have for years. But the UI around when it has and hasn't flagged something has always been a bit opaque and not predictable from system to system.

(For anyone else coming across this comment, I didn't end up doing the official 9.18 release then obviously. Still gotta work out some stuff with the mac build.)

Hi JP, thanks for this awesome creation. I just came across this today and was keen to experiment. Downloaded Windows 11 two days ago and am experiencing an issue where the main screen seems to be glitching. Would this be caused by Windows 11, and other than installing Windows 10, are you aware of any way to resolve the issue? Thanks in advance. 

Hmm, I've never seen that before. My first guess would be a GPU/driver issue, what kind of GPU are you using? (Nvidia, AMD, or Intel?)

Great software! Q: When I try to import a bitmap image, the browser doesn't show me any image file. I couldn't find a solution for it. (I'm using Win10)

Which format is the bitmap image in? JPG and PNG are the most widely supported ones.

I've tried with both file types. But the images doesn't show up on the select window. I've even tried it in two different PCs, same issue.

Is the image file in a protected system location? Try moving it to a directory where you have full read/write privileges, like your Documents dir.

Moving the files to the Documents system folder solved it. Many thanks for your help. Love your software!

You are awesome! I love this software! Thanks :)

I'm on a MacBook and the app immediately closes when I try to open it. No errors are given. I held control to allow the app to bypass the security warning, but it still doesn't work.

(+1)

Apologies, I build and test the Mac version on an old 2013 MacBook that's still on like El Capitan or something, so my ability to test different setups is limited.

This person forked Playscii on github at some point and doesn't seem to have made any major changes other than making sure it builds on their system, so you might want to try that version: https://github.com/michael-lazar/playscii

Thank for the reply. I thought it was because I'm using the latest OS. I'll look into the fork.

This one works on the newest version of macOS! Would you consider putting it in the description so that it has easier discoverability? Thanks!

Good call, I'll try to get a note up about that soon.

can animation be exported with the crt filter on?

Is there any possible way to setup a keyboard shortcut up to flip current char horizontal/vertical rather than having to go into the menu each time?

You can toggle off the Paint tool affecting different tile attributes like character and fg/bg color by clicking those labels in the bottom bar, so that it just affects the transform (xform). Set that to Flip X or whatever you like and painting will only flip the characters with no changes to character or color.

Hey, I bought the app believing it would run on macos and it's not the case :P I should have read all the doc before...

So I've tried cloning the repo at heptapod to try and fix the code and it's not working (the clone). I also tried downloading the archives of the repo directly and it did not work either... :'(

Of course, I finished up by finding the source link here!...

(2 edits)

Playscii.exe is flagged as a virus

SecureAge APEX Malicious Unsafe

DrWeb Trojan.MulDrop17.8250 FireEye Generic.mg.e89f9c6b51d00cad

TrojanMuldrop is a harmful Trojan that infects systems via network shares or it comes bundled with downloadable files. ... Muldrop will modify the Windows registry and system settings causing the system to deteriorate in performance. TrojanMuldrop may also download additional malware and display fake security alerts.

Malwarebytes Malware.AI.4243068513 McAfee Artemis!E89F9C6B51D0

McAfee-GW-Edition Artemis Palo Alto Networks Generic.ml

VBA32 TrojanPSW.Python Zillya Trojan.Agent.Script.1086024

https://itch.io/post/3527522

Deleted 3 years ago
(+1)(-1)

Describe the steps you're using to run Playscii.

Deleted 3 years ago

the character set named as speccy.char is from zx80 and zx81, not zx-spectrum - zx-spectrum is ascii7 based (undercase and everything)

(2 edits) (+1)

Thanks for pointing this out, that character set image is from 8 years ago and I just never checked it. The next release will have an updated version that properly reflects the Spectrum character set, in the meantime you can download the two files here:

https://heptapod.host/jp-lebreton/playscii/-/commit/1bfc3f60f3b91a9f41d13fefaa14...

thanks!  :) 

Viewing most recent comments 1 to 30 of 70 · Next page · Last page