12:11pm - I'm down at the McDonalds now. It's going to be tricky to figure out what to do next though. I've got a few good options. I'll eat my salad then go over them.
12:25pm - There we go, Salad Consumed! +100pts
Now then. I really should make a proper design document for my game, before I push on, so I know just what I'm making. It's sort of like how it's so much easier to code a solution to a problem in a Programming class when you have a clear explanation of the problem you're trying to solve in front of you. The trick is I've been trying to come up with a proper design document for my game for over a month and I haven't been able to put things into the words I need. Still, I could spend more time trying.
Another thing I could do is continue working on the programming as it is, figuring it out as I go along. That's not really a good way to do things. I don't want to end up like the first time I tried this, writing myself into a corner.
Yeah when I write it out like this it's pretty clear I should work on the Design Document.
12:39pm - Geez I don't even have one. I thought I had one I was working on in a file but in retrospect, I think I got too caught up on formatting and such. Plain text it is!
*new .txt file*
Now let's see... I'll write things here and copy them to the .txt as neccesary so it makes more sense than my stream of conciousness here.
What I'm making right now is a Roguelike Dungeon Crawling Game. There's also a town but it grows automatically as you progress in this first game. Maybe in the sequel I'll give the player choices to make in the progression. Hmm... I'm sure I've gone over this before, let me double-check my notes.
12:47pm - Oh here it is -
https://relee.dreamwidth.org/32077.html1:01pm - Alright I've copied that over and removed some of the old code design that's irrelevant now. What I kept was this:
Scenes:
Main Menu
Town 1, 2, 3, 4, 5, and 6
Random Dungeon Level
Final Boss Room
Game Over Scene
Game Win Scene
That scene structure should remain the same. Everything else is changing to move into the MVC style and use Quill18's Project Porcupine early work.
The model of the world in each world-containing scene (The towns, Random Dungeon Levels, and Final Boss Room) will be made up of a World object containing a two dimensional array of Tile objects, which each contain a List of LooseObjects, and an InstalledObject.
Tiles will make up the floor, and InstalledObjects the Walls and other objects that might be added later.
That's pretty close to where I am now, after milking Project Porcupine. So now I need to figure out how the rest of the game works. I figure there should be an InputController to take the input and update the model appropriately. There's already a WorldController. What it does is instantiate the World object and hold the callbacks for changes to the world model so that it can update the view.
So what do I do for the mobs?
I want to support party actions in the sequels so I don't want to make a hard-coded player class. Also I want to keep the option to control enemies open as well. So I'll probably make a generic Actor class and have some sort of flag to say if it's player controlled or not.
1:42pm - Let's look at all this from another angle. When the scene loads, what happens? When the player presses a button, what happens? Hmm...
2:06pm - I've gotten really distracted. I guess it was time for a break. XD
So when a scene is loaded... Oh I just got an idea! How about when a scene loads, the WorldController checks if it has a reference to a map file, and if it finds one it loads that map, and if it doesn't find one it loads a randomly generated map?
That sounds good.
2:27pm - Okay enough dinking around with distractions. Back to work time I think.
2:30pm - Oh poop, a bunch of troublesome kids have arrived to trouble the nice cleaner lady and myself. Alas.
Oh geez, one of them even sat down on the stool across from me for a minute. I might not stick around if it's going to get troublesome.
Anyways since the WorldController loads in the world, it should probably do the other initialization too. That is to say, it'll draw up the map and place the players and monsters in there.
It'll update the graphics for all the things relative to the model when the model changes, too. So when the player moves, it'll update the player graphic. Likewise with the monsters. It'll also do the LooseObjects of course.
The input will be handled by the InputController. I'm not sure if I want the InputController to directly translate input into action, or if I just want it to raise events or call callbacks on player input to be handled by something else.
I'm thinking I might have something like a TurnController that handles the turn based nature of the game.
3:08pm - Time keeps going forward and I keep getting distracted. XD
I'm talking to a friend and that's pretty interesting, and it's keeping me from the deep thought required to figure out how to handle the turn system.
3:35pm - Geez these troublesome kids are looking for trouble. One of them is vaping inside the McDonalds, discretely.
3:53pm - I'm mostly just talking with my friend Iggy right now, it's too distracting to work. But, I don't want to go home and leave Iggy hanging. So I'm kinda stuck here for the moment. XD
4:20pm - Well I'm not getting anywhere. I watched this GDC talk
https://www.youtube.com/watch?v=EXW1ts6tZh4&ab_channel=GDC and now I want to try writing ambiguous IF, and that's not productive...
Anyways I'm going home for now. There's leftover pizza waiting for me.