Build Part 1 of a simple game prototype
Day[9] GameDev DK30 Winter 2020 0 0
Description
I’ve been wanting to habitize programming more since I LOVE coding, but I tend to do it in bursts (ie spam coding for a few hours on a weekend, and then drop off all week). So, I’ve been hunting for a coding based project to work on as a means to help me get into a daily-ish routine of coding away. I initially planned on exploring some multiplayer networking stuff, but I played Slay the Spire and my brain has been itching/inspired to make something that has similar combo craziness. Currently, I don’t have a clear design in mind for what the hell the game will be. So, the first week will be devoted to creating a concrete design & a plan for precisely what small slice of the design I’ll be building in weeks 2, 3, and 4
Recent Updates
Since we just updated this DK30 website, this is a TEST POST to check for some formatting.
- Specifically, I want to check
- if itemized lists
- are displaying properly
I am a dk30 god
DK30 Winter is complete! Here’s the review video!
https://www.youtube.com/watch?v=d4H0ejuDjmU
Despite not making more concrete progress on my baby game prototype, here are the valuable lessons I’ve learned this DK30
- I need a workspace that’s separate from my streaming/gaming space. Once I got a laptop, desk, and chair in the living room area, I found it infinitely easier to work in the evenings
- I need to schedule time OFF projects just as much as I need time ON. With my nice workspace in the living room, I wound up in that loop where I’d be debating w/ myself every night – “Maybe I should work for an hour real quick? Or maybe I should rest and watch TV?” Worse, I’d be tired one day and WANT to just relax for the evening and I’d be questioning myself constantly: “maybe I should rest for two hours and THEN get back to work!?” Scheduling OFF days I think will be a huge de-burdening for me mentally.
- I need to have a more robust post-event routine. I had MTG Worlds which was a long travel & significant amount of work over the weekend. Afterwards, I totally let it ALL go baby: coming up, staying up late, halting my workout routine, eating tasty (and unhealthy) food. As great as it felt, I didn’t have a good plan for how to get back on to my coding routine. I need to have a good plan for what to do!
I have plenty more stuff to build w/ my little robo battle prototype so I’m excited for the future! I can’t wait for the next DK30 in the summer!
DK30 Winter is complete! Here’s the review video!
https://www.youtube.com/watch?v=d4H0ejuDjmU
Despite not making more concrete progress on my baby game prototype, here are the valuable lessons I’ve learned this DK30
- I need a workspace that’s separate from my streaming/gaming space. Once I got a laptop, desk, and chair in the living room area, I found it infinitely easier to work in the evenings
- I need to schedule time OFF projects just as much as I need time ON. With my nice workspace in the living room, I wound up in that loop where I’d be debating w/ myself every night – “Maybe I should work for an hour real quick? Or maybe I should rest and watch TV?” Worse, I’d be tired one day and WANT to just relax for the evening and I’d be questioning myself constantly: “maybe I should rest for two hours and THEN get back to work!?” Scheduling OFF days I think will be a huge de-burdening for me mentally.
- I need to have a more robust post-event routine. I had MTG Worlds which was a long travel & significant amount of work over the weekend. Afterwards, I totally let it ALL go baby: coming up, staying up late, halting my workout routine, eating tasty (and unhealthy) food. As great as it felt, I didn’t have a good plan for how to get back on to my coding routine. I need to have a good plan for what to do!
I have plenty more stuff to build w/ my little robo battle prototype so I’m excited for the future! I can’t wait for the next DK30 in the summer!
OKAY SO I had a huge interruption in my DK30 due to traveling to MTG World Championship 26! I knew this was coming, so I did a responsible thing and GAVE MYSELF PERMISSION TO NOT WORK ON THE PROJECT! It was incredibly mentally refreshing to finish some code on Tuesday evening, walk away, and know I wouldn’t touch any code until the following Tuesday.
In fact, perhaps the biggest lesson I’ve been learning this DK30 is that I need to schedule non-work time just as rigorously as I schedule work time. I have a wonderful new work station set up (in the living room by the TV and the kitty heating pad), but I found that I DO need nights where I state “I will NOT work on this project tonight.”
Building off this, I think my next big challenge is how to hit equilibrium after an intense 5 day work event. Hosting days are fairly long – I woke up at 430am each day to run before 645am call time, and then work lasted until approximately 530-6pm each day. When I got home, I immediately stayed up late, had myself some tasty indian food and beer, and then slept about 10-12 hours each night for 3 nights in a row. I tried to make myself do some coding on Tuesday and Wednesday to moderate success, but I’d like to have more concrete statements about what my post-event needs are. Should I be doing NO coding? Should I be sticking more rigorously to a workout/work routine until the weekend? Once it’s the weekend what should I do to recharge?
For the past 3 days, I’ve essentially punted doing additional work and have elected to try to do a big coding catchup this weekend. My goal, isn’t to NAIL any coding piece in particular, but rather to monitor my body and see how things progress. Thus far, my DK30 schedule has looked as follows:
- Week 1 - Sketch out a design skeleton and system stack for a game. Week 1 went great!
- Week 2 - Set up a new coding station, Github repo, and work routine. Week 2 went great! Plenty o’ stuff functions – pathfinding, health bars, and even some sexy lambda functions where I don’t need them (I think lambda functions are cool so sue me. They aren’t needed but who gives a dang)
- Week 3 - Do 2 solid days of coding before flying to MTG WORLDS YEAAH! I’m happy I gave myself permission to NOT do any code. I’m happy w/ this outcome, although the code progress is obviously worse
- Week 4 - I’m back from worlds and REALLY struggled to get back into a coding routine. I’m hoping the weekend catchup will make me feel better, and it feels POSSIBLE to hit my coding goals by Week 5. SO MUCH KNOWLEDGE IS RIDING ON THIS WEEKEND!
Weirdly, despite the lack of “concrete, showable output” from this DK30, this is thus far my most satisfying and favorite DK30 thus far. I’ve been focusing on WORKFLOW improvements, especially those around the BIGGEST disruptive forces in my life (event work, difficulty getting coding done in the morning), and I think I’m learning a ton.
SO! I’m updating slightly later than the 2 week mark today (although technically i did a video update that’s on YouTube - https://www.youtube.com/watch?v=kTaaj8XsN7w) I figure I’d add a few more notes as to what I’m workin on!
First of all, a bit on process – I’m REALLY loving having a separate workspace, but I think I need to work a bit more on scheduling. I think the problem is twofold – I need to have time set aside to do the work BUT ALSO I need time set aside to do NO work. In other words, I think I’ll function better with a “Wednesday is a no work night” + “Tuesday/Thursday are work nights” type of deal. I think I had at last two nights where I piddled a bit (maybe 30m of overall work) but also while watching TV. It would be nice if I did that on my “Wednesday off” and knew I’d still have two dedicated sessions during the week. Regardless, I’m forcing myself to “do something” almost every day and I can already feel it becoming easier to pick up my laptop and bang out even one idea.
Today, I’m getting some basic AI in for my robo pals, allowing them to have primary destinations they wish to travel to, but they can update their little brains onto different tasks along the way (ie someone is shooting me OH NO BETTER GO BATTLE THEM!). I’ve worked extensively with behavior trees, but I don’t think an AI model that sophisticated will be necessary. I’m going to try to not overengineer solutions to these problems and just make acceptable progress w/ plans to shift over to more sophisticated solutions when the time comes.
HOORAY FOR REFACTORING!
I have to travel to Hawaii for MTG Worlds on Wednesday so that’ll be an interruption. I’m not going to let myself get too worked up about it, though, since I’m working this weekend and plan on plugging away next week!
I’m extremely happy w/ my progress and new setup. My original goal is to habitize coding work. The biggest positive contributor has been setting up a workspace in my living room area w/ my laptop. Historically, I’ve used my streaming computer for streaming, personal gaming, and personal work. Having a change of scenery has been INCREDIBLY helpful for allowing my brain to focus on coding. In addition, I’m in the living room so I can socialize w/ the fam, watch TV, and code all at the same time!
However, last night, I MAKEY A BIG MISTAKEY.
I upgrade Unity to a newer version.
Immediately I got a slew of C# assembly errors that I could not for the life of me figure out how to fix. I spent 2 hours downgrading, returning back to the original Unity version, and blasting my master branch on github to make sure it worked properly on all my devices. WHEW what an effort!
Even though I technically didn’t “make coding progress,” this is all A+ in the land where I’m trying to devote some hours in the evenings to codey work. I’m happy to have been absorbed in a problem enough to have 2 hours fly by!
Week 1 is now complete! My goal was to spend some time making my design idea more concrete and using this to plan weeks 2, 3, and 4 for coding. I feel happy w/ the progress thus far because I know what I’m doing in week 2! Yahoo! Here’s a summary of the week:
For my DK30, I have the goal of wanting to do something “system heavy” like Slay the Spire or Into the Breach. I have a vague idea of a game where you build robots, and then have the robots battle against each other. Technically, I don’t need to have a fully thought out idea as I’ll only be coding for about three weeks in this DK30. However, if there’s one lesson I’ve learned when doing ANYTHING creative, I always function better when I have a reasonable idea of an end point. So, week 1 was about fleshing out some robot combat structure.
When making a system driven game, one of my first goals to see if I can “stack rank” the systems in order of importance. For instance, suppose I’m making a game where I choose a variety of spells and then go to battle. If my battling is incredibly flat and boring, it doesn’t matter how cool my spell loadout system is. All loadouts end with boring combat. So, fun battling would be the first system I should focus on, and the spell selection system should be second.
With that in mind, here’s the system stack I came up with in week 1:
- What are the forcing/foundation systems in the game? (These are the systems that help guarantee that players do the fun/cool stuff in your game. For instance, in battle royale games, the shrinking circle helps force players together to fight. Without the circle, players might never wind up encountering eachother on the massive play space. Other forcing system examples include offense/defense to help bring the players together etc).
- What does a single bout of robot combat look like?
- How can I enrich & deepen the combat by adding more costs/resources/mechanics to the combat? What would a few unique extra robots bring to the battle?
- How do I create a mission where there are multiple opportunities to wind up in robot combat (ie #2)
- How do I add more interesting locations/events in the mission to add some texture.
- What would a loadout system look like?
So, what do I do with this? There’s a 0% chance I can complete all of this in 3 weeks, but this helps give me a mental roadmap when I’m doing work. I primarily wanted to focus on #2 – the robot combat part! But, I’m well aware that if I don’t have a forcing system (#1), my players might never get to engage in robot combat. I wound up spending a good amount of time envisioning different ways that a player might get pushed together until I felt like I had a solid enough idea to allow me to focus on what I ACTUALLY wanted (#2).
My goal for the next 3 weeks is to whip up a simple Unity prototype of #2 (and MAYBE some parts of #3 if I’m speeding along).
For week two my plan is
- Set up a new Unity project & github repo
- Create a simple little battlefield
- Make robots w/ correspond health UI elements
- Get some basic movement/pathfinding w/ them robots
- Get some INCREDIBLY basic attacks implemented
- Make sure the code is refactored/set up so it’s easy to add different movement/attack/systems on top of it!
And that’s all I wanna do. There’s plenty of built in components in Unity to do this stuff. After I’ve completed these week 2 tasks I’ll do another re-evaluation on Friday to accurately plan out week 3’s work
Estimated Timeframe
Jan 24th - Feb 23rd
Week 1 Goal
Spend 4 hours on each of Saturday & Sunday, and an additional 4 hours during the week to create a concrete design for the prototype & a concrete plan for weeks 2, 3, 4
Week 2 Goal
TBA! Probably coding :D
Week 3 Goal
TBA! Probably coding :D
Week 4 Goal
TBA! Probably coding :D