March 2019 challenge: “6”
TextSmith - Testing, Testing, 1, 2, 3....
Posted by ntoll on 2019/03/29 07:45
So the parser is written. The Game logic is done. We're storing the game state "in memory" and dumping it every 5 minutes as a JSON file (on restart, if such a dump exits, it's automatically loaded). Given more time I'd remove all my shonky data related code and just use REDIS.
Unlike previous PyWeeks I've been WRITING TESTS... my god this has been both a positive and negative.
Midweek, I was almost ready to press the "sod it" button, just hack code and forget about tests. It felt I was writing three times as much code as was needed and I wasn't sure anything would be finished in time.
However, I persisted with the tests and I'm so pleased for it. I *know* my parser works because the tests demonstrate it. It feels good to refactor the code as I realise things need to change because the tests feel like a safety net to give me confidence I've not broken anything else.
What's left to do? Connect the websocket code to the actual game, finish the simple JS client and (hopefully) add some simple notion of scripting to the game.
In any case, I've **loved** working on this game, and the team chats with team-mate Andrew have been a huge amount of fun. No matter what, I think I'll still keep refining this game once PyWeek is over (e.g. Redis and a bunch of refactoring I don't have time to do now).
No matter the result, this PyWeek has been the best so far. Thanks Dan for organising it!
Six Moves - Day 6 - Level Re-Design Finished, Playtesting, More Audio
Posted by OrionDark7 on 2019/03/29 03:53
Today went much better, as I was able to redesign all of the levels to the point were I have some moderately challenging levels. They're not over the top hard, but they're not easy to where the levels pointless. I think I made around 7 - 10 levels today, but it could've been from yesterday (I barely slept last night so my brain has kind of checked out today, so I don't know).
And then I got somebody to play test the game today. I thought it was going to be too easy and that they could whip through the levels in seconds (which is what I had been doing to test for bugs). I thought I was going to have to make them even harder for there to even be a point in playing them.
But alas, that was only my perspective, and I was totally incorrect.
From what I saw, it seemed challenging, and I watched them take a bit to figure out where they needed to go, whether it be planned or by trial and error. They said it seemed tricky and it sort of hooked them in for a second or there too, which was great. It was very encouraging to see that I was taking a step in the right direction and it inspired me to keep on going strong.
I also created two new background music loops for the game, both having completely different styles/themes or whatever you want to call it. One of them I built off of the little thinking song from Jeopardy, as I thought it would fit in a puzzle game where you have to think about what you're going to do next and where you are going. Another one I made seemed sort of evil, sort of like you were in this situation where you were stuck and each thing you did had a negative outcome.
Also no screenshot today because I didn't work on Graphics at all, so there's nothing new to see there.
I still have a lot of homework to do and I have a test tomorrow so I have to get studying, and I have a whole bunch of things I need to finish with the game, so I'm going to get to bed.
DEEP-6 - "You can always get a good deal on a shipment of gadolinium in Ymizgafpabfilfaxtegwefekjwrrovkad."
Posted by schilcote on 2019/03/28 23:58
This is another all-text post, so uhh... here's what the galaxy looks like now:
So, when I planned this all out, I had six things to do, and six days to do them (plus 1 day dedicated to testing & debugging.) So now, uh... step 1 is done. Mostly.
I was going to say I should have realized that generating element quantities and simulating things being made out of elements wasn't going to add enough depth to the gameplay to be worth the effort, but I'm not so sure after thinking about it... I think it just came out to bad luck, I made a lot of hard-to-debug mistakes that sucked up all my time fixing them, that I don't see any way I could have avoided. The biggest thing is that I should have wrapped the periodictable.Element instead of trying to make everything work with both IndustrialProductType and Element. That, and astropy's units handling; while it caught a couple bugs that would have been hard to find otherwise, I think the time I saved was cancelled out by the time I had to spend wrestling with it.
I think the minimum I can reduce the game to is the trading, space combat, and character interaction (the last being absolutely necessary to be considered on theme...) The trading is... done-ish, it should be a simple change to simulate metallicity gradients (elements heavier than iron are only created in supernovae, so planets closer to the core or in clusters around the galaxy, where there are more stars end up with more gold, platinum, etc.) which will hopefully add some level of strategy to it above "fly around till you find cheap stuff, buy it, fly around till you find someone who wants to pay a lot for it, sell it."
The characters are far from done but I think the hard part is complete, it's just straightforward implementation of the character creation menu, adding more text for them to say, that sort of stuff. Characters are hooked in to what I called the "interjection" system; characters can say lines in response to things that happen. So, for example, when you enter a system, a character who is an experienced trader will say "I've been here before, this system usually has a surplus of carbon, we should buy some plastic."
I don't think the trading game can be satisfying gameplay on its own, so... hopefully I can get the ship-to-ship combat minigame in before the deadline. In order for the ship-to-ship combat to work I need to implement ship systems, which is probably gonna take more time than I have. Certainly can't get it done and have a day to test. AND, hopefully, I can get a graphical view/controller working, so I don't have to submit the text-based prototype I have now. I guess we'll see.
Alright, last galaxy pic: this one took several hours to render, with 200 million stars; it's pretty, but it also really emphasizes the imperfections in the star placement code. It's concentrating a ton of stars at the beginning of the arms, making them brighter than the bar. Ah well.
Posted by mauve on 2019/03/28 23:52
I sat down this evening to design some levels. I've taken a number of different approaches including a random generator - at least, a tool that gives me ideas to turn into levels, and SVG guides that help me design the jumps.
A few levels in I had the idea of picking up the base colour of the rocks from the fill colour of the SVG paths, so I can now add light and shade to the rocks right in Inkscape, where I'm also positioning the flies and water. This improves the look significantly with very little time spent.
The game already reloads the level from disk when you retry a level, so this has also made level editing pretty fast - at least, it lets me set the atmosphere and layout for a level quickly. I think the look still needs improvement, and I need to sort out my backgrounds, but there may be time over the next 2 days.
Posted by Phantasma on 2019/03/28 23:14
I got all the sprites working as intended and I'm now currently in the process of making levels 2-6 and play testing them. The 1st level I've shown on the screenshot awhile ago has already been made.
I'll try and give you all some very brief gameplay footage on day6.
By the way since this is my 1st time doing this challenge, I'm not familiar with how to submit my final entry and everything related to that. The lack of submitting my source code throughout this entire challenge is worrying me a little bit. Fortunately the scope of my game is small enough where I should have enough time to figure all that out.
Quantograph - Day 5: A PR to the Qiskit tutorials
Posted by quantumjim on 2019/03/28 15:09
My project turned into a potential Jupyter notebook for the Qiskit tutorial. Today I made a pull request
https://github.com/Qiskit/qiskit-tutorials/pull/577
I think this will be basically the final version. I'll make a more streamlined one for the final submission, but this is my quantum art toy: made from Jupyter widgets rather than pygame.
Posted by mit-mit on 2019/03/28 14:10
It's been a hectic week, but will try to quickly post an update: we are making a stealth game where you need to control six prison inmates working together to make a great escape. Day 1: Artwork downpat! (Lucid was super fast), Day 2/3: Got basic game framework and basic level editor. Day 3/4: classes for tilemap, players, in-game item, environmental controls (doors, buttons etc.). Day 5: working on AI for prison guards.
Posted by LeopardShark on 2019/03/28 07:52
After a couple of false starts on Sunday I finally settled on the idea which I hope I will actually submit. It is a simple racing game with a fairly common twist, which is that you have to change the gears yourself.
The basic game is working, and the engine torque mechanics are almost fully complete, but there's still a lot to do.
Currently the parts of the map that are not track are empty space, and if you fall into them you'll immediately lose. I'm thinking of changing this to sand in order to make the game a bit more forgiving.
Unortunately, I won't be able to get much development done at all today so hope I can finish it off tomorrow and Saturday.
Posted by scott on 2019/03/28 06:31
Hi all,
We're attempting to create a game with a few parts:
- Your group of 6 units enters rooms in a hex grid dungeon
- When you enter a room, you have to defeat everyone in the room to progress. The room is also a hexgrid (see picture above).
The battles proceed in a turn-based style. Each turn goes like this:
- 6 dice are rolled
- Each number is the number of turns that a unit can take, and you can assign them as you like
- A plan is created for each unit, which consists of moving and attacking (up to the number of moves)
- The AI makes a similar plan
- The two plans are executed simultaneously, with units with the lowest number of moves going first
The turns continue until all the enemies, or all the players units are dead.
Unfortunately, a lot of pieces are still missing, most importantly any interface for doing the planning. I hope that we'll get something in, but it's more likely to be a demo than anything polished.
Hope everyone else's pyweeks are going well!
Posted by chrisyan2000 on 2019/03/28 05:47
Most of it's mechanics are finished.
Just gonna take tomorrow to finish the crafting, sun/moon rotations and weathers.
And the last day will be a whole day working on textures!