Outpost Universe Forums

Off Topic => General Interest => Game Discussion General => Topic started by: lordpalandus on March 11, 2018, 02:07:11 AM

Title: Chaotic Planar Prison - Prototype V2
Post by: lordpalandus on March 11, 2018, 02:07:11 AM
Hi all!

My new game is called "Chaotic Planar Prison" and it will be an ASCII (eventually tiled with sprites), roguelike/roguelite game. I've learned a lot from Cataclysm of Chaos' development and going to take those lessons and apply it to this game and it's development. I'm going to try for weekly prototype releases, with realistic goals to accomplish each week (so I don't get bogged down with too much work each week) and I'm working on having a design document (it's about 60-70% complete) that will help me to know where I'm going with the game and know if I've reached specific milestones that I intend to reach with the game. I'll post a new update, (unless I totally bork the code during that week), every Saturday/Sunday. So, anything on the task list that is listed as Done or Temp, will be in the Sunday build.

I'm excited to see where this game will go, over the coming weeks.


The second prototype fixes a variety of bugs in the first prototype, adds a couple quality of life changes and introduces a few new basic systems. I've added a Changelog of what has changed between updates and have updated the Readme file with relevant information (in this case, new controls).

NOTE: I consider the Prototype to be "Pre-Alpha" status and have a list of major systems that need to be in place, before I consider it "Alpha" status. I'll look into providing a list of said systems at a later date.


You may want to hold off on playing it, as it is still fairly crude, but in my opinion much better now. It is definitely playable, with some loot and monster variety, as well as a basic levelling system (most of which will be replaced eventually), and a save/load system.
Title: Re: Chaotic Planar Prison
Post by: lordpalandus on March 11, 2018, 02:08:04 AM
This Week's Task List for Prototype V3:

1. Implement the A* Pathfinding system, which should make the AI significantly better at pathfinding around obstacles.
2. Redesign the Loot Generation code, to reduce redundancy, make it more flexible, and design it in a similar manner to how I generated loot in Cataclysm of Chaos.
3. Modify the Autopickup System, so that when you pick up an item that is an obvious upgrade to what you are currently using, it deequips your current item and equips the new, more powerful item.
4. Implement the Scrolling Camera system, to allow for bigger maps than the game window is.
5. If, the A* Pathfinding system doesn't include Wandering Monster code, then I'll add it in.
6. If, I get the Scrolling Camera code in, then make it so that the dungeon gets bigger as you delve deeper.
7. Create monster spawning code for the Normal Portal, so that it will over time, repopulate a floor.
8. Create runestone attunement code for the Runestone, so that when you attune yourself to it, it restores all of your HP. Will try to make it only do this on the first attunement, but if not, then I'll address it later.
9. If, I get the new Loot Generation code operational, I will include in the other item slot types into the game.
10. If, I get the Runestone Attunement code operational, then when you die, you will respawn at the last attuned Runestone.
11. If I get the respawn code operational, I will create the Stress System, and take Stress Damage from dying; suffer too much Stress damage and suffer permadeath and save deletion.


However, unlike CoC, where I often did whatever thing I wanted to do, regardless of if it was on the task list or not, will be different for this game. I intend to stay on task, and get the most critical stuff done first and foremost, and these will be on the task lists I assign for myself. Once I'm out of critical stuff, I'll work on the next highest priority stuff. I feel a bit of discipline will really help me out and as I have a design document, I have an overall design and action plan available to figure out what needs doing, when.
Title: Re: Chaotic Planar Prison
Post by: Hooman on March 14, 2018, 07:52:38 PM
Good to hear about the progress on your new project.

For the break issue, do you have a doubly nested loop? I so, the break will only exit the closest inner loop. If you need to break further out, sometimes return can be useful.
Title: Re: Chaotic Planar Prison
Post by: lordpalandus on March 15, 2018, 12:43:28 AM
Well, it turned out that the main menu, that appears at every game startup, doesn't deactivate after running the code. Thus, hitting escape, breaks the main event loop, but brings you back to the Main Menu, which is why you either have to hit c to quit or begin anew.

I added an additional break after the function call for playgame(), so that when the main event loop (playgame) is broken, then the main menu will also break, allowing the program to end.

I'll look into provide an actual pause menu later, but for now this is sufficient.
Title: Re: Chaotic Planar Prison
Post by: Vagabond on March 15, 2018, 10:12:09 AM
Glad to hear you are making some good progress. Will be interested to see where you go with the project.

I keep hearing good things about Python but have never used the language myself.

Title: Re: Chaotic Planar Prison
Post by: lordpalandus on March 15, 2018, 12:21:43 PM
Well Python does have two unique features that I've not seen in other languages:

1. Instead of using { } to create blocks of code, you use tabs or 4 space indentations. You have to choose one of them and the other becomes a syntax error, if you accidentally put it in your code.

2. Python is both an interpreted and compiled language. It compiles any secondary file imports but interprets the primary file. It however does sound like you can compile the main file into a binary .exe file. (Or it compiles all files into a binary, unsure of that).

EDIT: After a ton of work, I figured out ways to address tasks #3 and #5, and thus they are either fully solved or temporarily solved now. A few more things to do on the task list, before I can update it with new tasks.

EDIT2: After a lot of frustration and confusion, I have working mouse support for menus. I had to add a variety of additional code to the program, that the tutorial didn't mention to get it to work, that feels like code duplication, but oh well. I don't fully understand why it works right now, but it works fully, so I'll just figure out why it works later, when I go to create my own menus / redesign the current ones.
Title: Re: Chaotic Planar Prison - Prototype V2
Post by: lordpalandus on March 17, 2018, 05:09:32 PM
Released V2 of the Prototype, a day early. Created a Changelog that lists all of the things I accomplished this week, and have updated the Readme with new controls and other notes.
Title: Re: Chaotic Planar Prison - Prototype V2
Post by: Hooman on March 18, 2018, 03:21:22 AM
Hey, based on the zip file, it seems like you're programming this one straight from a simple text editor, rather than using any kind of code generating interface. Is that correct?

Have you thought about hosting the source code on GitHub? I can give you a quick intro if you want to do a pair programming session.

Title: Re: Chaotic Planar Prison - Prototype V2
Post by: lordpalandus on March 18, 2018, 10:27:41 AM
Yes I am coding it straight from Notepad++ at the moment. Though I might choose an IDE later once I start running into logic or runtime errors that I cannot solve.

I wasn't planning on putting up the source on github. As I intend to market this one, it will be closed source, and just because right now I'm distributing the source files doesn't mean I want to do that permanently. Over time, I intend to break up the codebase into separate files, and then I'll be distributing them as compiled pyc files or as a binary and dlls. I might include some files in an uncompiled state for modding purposes, but the current situation of the source being able to be looked through is temporary.

Thanks for the offer, but I'll pass.
Title: Re: Chaotic Planar Prison - Prototype V2
Post by: Hooman on March 18, 2018, 09:43:05 PM
Notepad++ is great. For a language like Python, you could do just fine using only that. I mostly stopped caring about having an IDE when I started using Notepad++ for Ruby work.

I can understand the concern about not wanting to put up source code for a commercial project. Very few people put up the code for something they are charging for.

I suppose you can always use one of the GitHub alternatives that allows for free private Git repositories:
GitLab (https://gitlab.com/)
Bitbucket (https://bitbucket.org/)

On a related note, here's some food for thought:
Gratis versus Libre (https://en.wikipedia.org/wiki/Gratis_versus_libre)

Cost, source code access, and even redistribution rights are rather independent concepts. All independently under the control of the original author. At least as far as legal protections go. There's still the issue of piracy though, which is possibly the major reason why much commercial software is closed source.
Title: Re: Chaotic Planar Prison - Prototype V2
Post by: leeor_net on March 19, 2018, 07:40:43 PM
Should still consider a repository. Working the way you are now in your own directory not mirrored anywhere is a recipe for disaster (believe me, I've been there).

I would suggest GitLab only because I've worked with it. You can use private repositories at no cost which will allow you to take advantage of a repository without also having to open your source. Additionally, you can provide access to individuals if you're looking for assistance with some part of your code, etc.

Just food for thought. I've been the victim of years of lost work due to a hard drive crash. It sucks. Like, it really sucks.