Battles
Again, not much time spent on the game today unfortunately. What little time I did spend on it was setting up the concept of Turns, i.e. two players submitting a few cards each and then the logic being done to determine the outcome of the turn and return a result.
I’m not sure of the best way to approach it, but how I’ve done it is that when a player submits their actions for the turn it checks for an outstanding Turn and creates a new one if one doesn’t exist. When the last player submits their action it’ll run the logic.
I thought it would be cool to store the turns so you could replay a battle, or at least see what happened.
I’m approaching the point where I’ll need to create Player accounts and get multiplayer going so I can test some battles in real time between two separate browsers. That’ll be a milestone!
For multiplayer I’ll use SignalR. I tested it out once a while back and it was pretty straight forward.
Data
No great progress today, but I did get a basic API working; sending card data to the client. Basic stuff, but necessary.
I’m not really sure what to do next. I think maybe I can start on the battle system. I’m kind of rehashing what I said last night. It’s been a long day…
For the battles, all the work will need to be done on the server to avoid cheating. It’ll probably flow something like this:
- Player selects action
- Server checks that the action is allowed
- If so, action is applied
- Result is returned to client
The other big thing I’m concerned about is the construction of the overworld, and movement around it, but I’ll try to nail the core mechanics first.
I’m tossing up whether or not to build a UI for creating cards, or to just do it directly in the DB. It’d be nice to have a UI, but I think it’d be a waste of time at the moment.
Progress!
I decided to focus on getting the back end set up first, rather than focusing on the UI. Visuals always have a habit of eating up a lot of time if you get carried away, and that’s something I can’t afford to do. I also don’t want to do the UI for the UIs sake - I’d rather do it with the actual game data so I can test the game at the same time.
I’ve set up a number of classes that represent the player account, player characters, map tiles, map objects, the different cards and battles.
Gameplay is centered around cards, but I wouldn’t consider it to be a card game. It’s just a different way to represent an inventory.
The current card types are:
- Weapon - Used for combat
- Ammunition - Required by most weapons
- Equipment - Clothing and armour
- Effect - Inflict or heal damage
- Thing - Parts that can be combined to create objects (e.g. structures or vehicles)
Cards have a value and a probability of being found, allowing for a trading mechanic to be introduced, and motivating players to explore and battle to find more cards.
One thing I’m going to struggle with is balancing all the different cards, e.g. making sure a particular weapon isn’t too strong, or completely useless.
The next step is setting up the controllers to send Cards to the front end, with a basic UI to display them. I’ll then need to set up the battle system.
Like Pokemon, the overworld will be in real time, and the battles will be turn based.
Lots to do.
(For the front end I think I’ll go with pixi.js after all)
Game Off 2020
I stumbled across the GitHub Game Off challenge the other day and thought it looked like a bit of fun.
Life hasn’t become any simpler, and I’ve got less time on my hands than at any point in the year, but I’m determined to make something.
Fortunately my effort on Arid has been pretty poor, bordering on non-existent, so I’ll be able to build something inspired by the same idea, if not a bit simpler than what I had in mind for the original vision of the game.
The theme of the game jam is Moonshot… The moon is arid, so it can still work. I’ll just need to tweak the concept a bit. I’m thinking 80s, Cold War era lunar conflict.
I should be able to update this blog more often now with development progress. My first steps (which would need to be finished within a day, or two at the most) are basically the same as before:
- Show a sprite on the screen
- Control the movement of a sprite around the screen
- Sync a sprite moving across two sessions at once
- Have two sprites interact
- Finish the rest of the game…
I’m still not sure about going with DIY or a framework, but I need to figure it out ASAP because a month really isn’t a lot of time. I’m thinking it should be broken down like this:
- First two weeks for development
- The next week for art
- The final week for everything else
I don’t expect it to be 100% by the end of this, but there’ll hopefully be enough there to get people interested in seeing it get finished.
More information about Game Off 2020 can be found here.
A somewhat eventful interim
So the last few months have been anything but uneventful! Fortunately I’ve been kept very busy, and have hardly been impacted at all by the whole covid situation.
I ended up installing Call of Duty Warzone and played it way too much. It’s almost perfection… I’ve always enjoyed CoD, and the game design is masterful - you just want to keep playing.
For Arid, I’ve thought about incorporating some of the concepts of Warzone, and also Metal Gear Acid, of all things. Metal Gear Acid is a turn based strategy… card game? Anyway, it’s great.
However, I’m again struggling with the ethics of creating a game - yet another virtual distraction from the real world.
Ultimately, I still have a lot of work to do and can’t put any time into this at the moment anyway, but I’m still filing away reference art and ideas for designing the world.
Still busy…
It’s still on my mind, and I fit in some reading about WebGL in where I can, but I’m too busy with real work at the moment to do any more than that. So sad.