-
Notifications
You must be signed in to change notification settings - Fork 0
Iteration 1: Recap
Sean Kleinjung edited this page Nov 7, 2021
·
2 revisions
Initial planning and design document was completed.
Released v0.07 with application navigation, random dungeons, monsters, basic combat and equipment, and more.
- Spent several hours on the project's build and release system, partially due to being unfamiliar with Electron. Initially this seemed not to be worth it, but I think the ability to easily cut releases is paying off even early in the project.
- Electron is not a great platform for game development so far. The application is very large. Additionally, HTML/CSS and React turned out to be more difficult to use for creating a UI than expected. Specific difficulties exist around focus and event handling, scrolling, and detecting component size changes
- The React.js state model doesn't interact well with how I tend to structure games. Integrating a mutable game engine model with React state in a way that rerenders appropriately (and with sufficient performance) took a significant amount of time this week, and I'm not really happy with the current state of it. Since the game is turn-based, I probably should have considered using an immutable game model and building a more traditional React application.
- I probably should have spent more time in general planning how I was going to implement some systems before diving into coding. I will chalk this up to a combination of excitement, and the competing forces of compressed timeline, 'crunchless' constraints, and what was probably to ambitious of a project scope.
- Staying on task is key! It's very noticeable when I start to meander away from the actual feature I am working on, and adding unrelated things or over-polishing the current work. I'm trying very hard to focus on getting the features in place, so I can prototype and play with a working system before perfecting any individual part.
-
release-drafterignoresname-templateand names everything 'Draft' if there are no prior releases - Have to line up the package.json version, tags, and release names with release-drafter and electron-build:
- Release name must not have 'v' prefix
- Tag name must have 'v' prefix
- Release name must equal package.json version at the time electron build runs
- Elements that aren't normally focusable require
tabindex={0|-1|#}to be focused via.focus() - React 'Callback refs' are handy, and solve the problem of 'run this whenever the ref changes'
- React styling - classes are global, modules, probably want 'styled-components' at some point