- AI-based NPC control/interaction; need to find training material; I have a couple databases, will need to contact an attorney to make sure it's legally acceptable in my area
- notcurses game client
- Living, breathing world controlled by different AIs; these will need to be as lightweight as possible and yet fulfill their function
- Weather AI, based on geography
- NPC AI
- Monsters/combatants
- Quest
- Socio-political
- Create an interesting and enjoyable game rather than focus on the latest, most beautiful graphics possible
- Sandbox-type world
These files are the 2nd or 3rd iteration of my attempts to successfully create a login client/server and world server in python.
Python3-based TUI RPG. Currently, this consists of:
- Login client: Using curses
- Login server: The backend is sqlite; passwords are hashed between client and server
- World server: This does nothing at the moment except to provide a message that the user connection is successful. Eventually, will control a notcurses-based client
This project is in pre-alpha as of 01 January 2024. I am working on the goals and logic flow, which I may post here later which will guide technology development.
- Hardware requirements
- Dedicated world server; already own 2x AMD systems that will work through alpha stage; will keep an eye out for older commercial-grade server hardware
- Dedicated login server; ideally, I would like something simple and lightweight, such as a Raspberry Pi -
Need to evaluate effectiveness and capabilities/stress test
- Enter alpha stage on
login_client.py
- Create own instance of terminal window upon launching the client
- Port code to notcurses to allow for custom graphics (Nice to have)
- Center username and password on terminal window
- Message to create account on website or by someother means if one does not exist
- Error message popup if account does not exist
- Close gracefully after passing user off to game client
- Enter alpha stage on
login_server.py
- Encrypt communication between login client and login server
- password hash
- username hashed between client/server
- Encrypt communication between login server and world server
- Encrypt communication between login client and login server
- Enter alpha stage on
world_server.py
- Check if account is active
- If account is active, successfully route user to game world
- If account is inactive, reroute to login client with error message
- Notify login client that user login was successful to close login client
- Server-side exception handling and log errors to file
- Notify admin on server exception
- Admin-specific functions
- Start
- Stop
- Reboot
- Status query
- User functions,
to be identified at a later date
- Check if account is active
- Create NPC database
- Create AI-based NPC interaction
- AI learning model for YAML/JSON files
Almost all of the goals and development is subject to change; however, what I'm absolutely tied to is that I want this done with SQLite and Python. I may port this later on, but I want to test scalability and effectiveness in resource handling.
Concept, art and code written by Steven Osborne