Showing posts with label Video Games. Show all posts
Showing posts with label Video Games. Show all posts

Sunday, June 5, 2022

PyWeek33: Quantum Entanglement

"Quantum Entanglement" was a team entry by Team MYCTL (for which I was part of) for PyWeek 33, (March 2022), a twice yearly video game development competition that gets competitors to build a complete game from scratch in seven days using the python programming language. This competition's theme was "My Evil Twin", and we made a 2D puzzle game where you control two scientists (one good and one evil) walking around within their respective labs, but where the controls for each character are linked to the same keyboard presses. The aim of the game is to direct the "good" scientist to a goal "green crystal" while ensuring that the evil scientist does not touch any of the "evil" items he has lying around in his lab space.

This was my first go at trying to "coordinate" a team entry (bigger than two members) and it was super enjoyable and a great learning experience: we had a good mix of different skills in the team and experience levels ranging from early programming experience to professional software devs, and from no game jam experience to very experienced game jam competitors. I learnt a good amount about managing a git repo with slightly larger teams (something I can say I'm probably not very good at!) and had a lot of fun working with others in different creative capacities: we even managed to get a game story going with a script and voice acting which was super cool :).

There were a lot of really cool puzzle concepts amongst the other entries for this year's jam: I think it was something to do with the theme that made for a lot of cool ideas, and lots around trying to control two characters (twins) simultaneously. I liked our concept, and would have liked to be able to spend more time trying to think through all the emergent mechanics that come out of the rule sets we came up with (but 7 days goes so quickly!).

The general premise of the mechanics was that each character is controlled by the same common set of ASDW direction commands: each character's environment is different however, so depending on how their character interacts with their map (i.e. one character runs up against a wall while the other continues to travel in free space) the "state" of each player (i.e. position in world) can be different. The general aim of the game is to guide the "good" character to a goal location (green crystal) while making sure the "evil" character does not touch any of the "evil" objects/squares in their map:

Using this mechanic, we developed a few different types of levels:

  • Early levels just presented each world with enough clutter to make the player concentrate on both worlds at once, but you could win by just guiding each player along the same overall path
  • Later levels would start to require that the player changes the relative offset between characters by pushing one up against a wall that the other did not have in their map: this would often be required to traverse a path that was offset from one world to the next.
  • Final levels would start to build on this complexity by requiring some combination of these effects.
Overall the jam was a lot of fun, and we ended up coming second in the teams division with an overall score of 4.04/5.0 which I think we were all happy with.

Game Playthough:


Extensions on game puzzle mechanic: I think the general idea for the mechanic we had here was pretty solid and I've been wanting to explore this idea in a bit more detail: I generally don't think making puzzle games is my strength, so I'm keen to explore this a bit further, and I'll be looking into this in a future post.

Sunday, October 24, 2021

PyWeek32: Temporal Anomaly

"Temporal Anomaly" was my solo entry for PyWeek 32 (September 2021), a twice yearly video game development competition that gets competitors to build a complete game from scratch in seven days using the python programming language. This competition's theme was "Neverending", and I made a sci-fi story-driven 2D action game in which the main character is stuck in a never-ending time loop. The game requires you to guide your character around the inside of a derelict science vessel in deep space, using your laser gun recoil in the zero-G environment. As you experience and re-experience the same events through several iterations of the time loop, you pick-up clues that allow you to out-smart your arch-nemesis, the evil Dr. Ubel and save the day by avoiding a catastrophe that tears a hole in the fabric of space-time itself.

This was a really fun entry to make: I ended up using the python arcade library (instead of my usual pygame), which was quite nice and made a lot of things more convenient. I also made heavy use of PyMunk for 2D collision physics. Voice acting for the story was also a big feature for this one: I recruited me wife to play one of the roles and I did the other two: it was really fun, we had a full script and everything. 

  


I was super chuffed to win the solo division and overall winner with a score of 4.44/5.0, which makes it the highest overall rated game in PyWeek history! Super excited :) ... 

You can download the game in source version here (requires python, python arcade, pygame and pymunk).

Playthrough Video:

Sunday, December 20, 2020

Hollow Knight Softie

 

My son and I have been playing a lot of Hollow Knight on Switch lately (eagerly waiting for any more news on the release for Silksong!). In fact I played the game when it first came out almost (more than?) two years ago, and I remember I got about halfway through and then things just got a bit too hard :) and I moved on to other games. Recently my son picked up the game (with relatively little platformer experience) but already he is well past where I got up to (young minds learn new skills so fast), so I decided to start a new game again and I've been loving it.

Anyway, I decided it was time to get the old needle and thread out again and do another softie, this time making a little Knight. He will be a Christmas present for my son (who otherwise said he wants Silksong for Christmas, but we will have to wait for that one :)). I might end up making a few additional accessories and maybe even a Hornet doll to go with him if I'm feeling bored over the holidays!

Merry Christmas for 2020!


Edit (Feb 2021): So I also ended up making a Hornet doll, because it was fun and and an extra birthday present for my son. Making softies is addictive :)




Tuesday, December 1, 2020

PyWeek 30: Marooned

"Marooned" was my solo entry for PyWeek 30 (September 2020), a twice yearly video game development competition that gets competitors to build a complete game from scratch in seven days using the python programming language. This competition's theme was "Castaway", and I made a 3D platforming game where you play as an astronaut that is stranded in an asteroid field after your spacecraft was forced to self-destruct. The game requires you to try and build items that will help you on your quest to repair and re-launch your escape pod by using the scraps and debris that you find around you. While on the asteroid field, you encounter hostile alien lifeforms that escaped from your ship, so the game has a mixture of platforming and 3D shooting as well. 





I had a lot of fun making this one, and was pretty happy that I managed to get most assets of the game up and running (code, art, modelling, music, sound) myself, without having to rely on many third-party ones (I had to use a few fonts and textures from external, free sources). The game ended up coming second in the solo division with a score of 3.96/5.0, so I was pretty happy with the result :).

Playthrough Video:

You can also download the game and play in from source (required Python, Pygame and PyOpenGL) here.




Saturday, November 28, 2020

LowRezJam 2020: "Blur"

"Blur" was my solo entry to the LowRezJam 2020, a game jam where you have to make a game with a maximum resolution of 64x64 pixels. I decided to make a sound-driven story game where you play an astronaut trying to safety navigate their spacecraft back to Earth after an explosion on the spacecraft. The general idea of the game is that you regain consciousness after the accident and are experiencing temporary loss of vision: the game begins with a resolution of 1x1 pixel. As you start to regain your sense and get you spacecraft back in order, your vision slowly starts to return as the game progresses from 2x2 pixels to 4x4 pixels to 8x8 pixels and eventually 64x64 pixels by the end of the game. With the help of ground control over the radio you need to problem solve your way through malfunctioning subsystems, power restarts, communication failures, fire in the cabin and eventually safely re-enter your spacecraft back down to the ground.



I had a lot of fun making this game: because it was so dependant on sound, it relied pretty heavily on some voice acting, a script and various sound effects, so it was a good learning experience trying to do a lot of this stuff for the first time in a game. It made me realise too that making sound-driven games is really hard to get right and find good puzzles and mechanics.




The game was programmed in Python/Pygame and there are both Windows and Mac OSX builds of the game (made via PyInstaller) that are available, as well as the game source code, here:

"Blur" by mit-mit on itch.io (https://mit-mit-mit-mit.itch.io/blur)


Saturday, June 27, 2020

Game Music

As much as I enjoy working on code and game design for game jams, recently I've been having a lot of fun working on audio and music: I think game music is really cool to work on, because like with film, the music has to support the themes, atmosphere, pacing and story that's going on in the game. I think game music is fun too, because it's easy to draw from lots of different genres and styles of music, and people accept that game music can sound a bit quirky.

I've worked on music for a couple of recent jams:


https://soundcloud.com/user-349094787/improbable-mission-force-medley
"Improbable Mission Force" (https://pyweek.org/e/pw---__/) was a PyWeek 28 Entry for the theme "Tower" that I worked on with some PyWeek veterans: I did the music/audio and a bunch of 2D artwork, plus some script and voice-acting: was super fun. Game started off in a sort of Die Hard-like 2D shooter, but then halfway through the jam our graphics-guy showed us the player character art, which was a bit more like xXx so the music made a bit of a turn from action-orchestra to punk and guitars, and some how synths got in there and it was lots of fun.


https://soundcloud.com/user-349094787/bunker-builder
"Bunker Builder" (https://alakajam.com/8th-alakajam/874/bunker-builder/) was an Alakajam #8 entry I worked on the audio for: I took a lot of inspiration from the the soundtrack to WarGames.




https://soundcloud.com/user-349094787/el-ratto
"El Ratto" (https://karhal.itch.io/el-ratto) was an entry to the Historically Accurate Game Jam #2, in April 2020 for the theme "Black Death": this one was fun because I got to do a bit a research on medieval music, and had a go at playing with traditional instruments.

https://soundcloud.com/user-349094787/hackr0ute
"Hack::R0ute" (https://alakajam.com/scorespace-alakajam/961/hackr0ute/) was an entry to the ScoreSpace x Alakajam Game Jam in June 2020 for the theme "Connections". I worked on audio/music for the game.

I'll keep posting new music I do for jams and other games to my Soundcloud page here:

https://soundcloud.com/user-349094787

Friday, April 26, 2019

PyWeek 27: Breakout Blue


"Breakout Blue" was our (Team Chimera) team entry for PyWeek 27 (April 2019), a twice yearly video game development competition that gets competitors to build a complete game from scratch in seven days using the python programming language. This competition's theme was "six", and we made a game in which you control six inmates trying to work together to perform a prison escape.


I teamed up with Lucid Design Art, the other half of Team Chimera: it was our first collaboration in about two years, and it went well. I worked on game programming, music and sound, and Lucid worked on game design and artwork. The game involved a combination of puzzle elements and a little bit of stealth, and turned out well. We placed second in the team entries and tied for second overall with a score of 4.13/5.0 so we were pretty pleased with the result.


Playthrough Video:


You can download and play the game from source (requires python (2 or 3) and pygame installed).

Sunday, November 18, 2018

PyWeek 26: Storm Drain Odyssey


"Storm Drain Odyssey" was a team entry by Team Universe Factory (for which I was part of) for PyWeek 26 (October 2018), a twice yearly video game development competition that gets competitors to build a complete game from scratch in seven days using the python programming language. This year's theme was "Flow" and we created a 3D dungeon exploration/puzzle game where you control a pet goldfish navigating your way out of a sewer labyrinth.



I'd been itching to be part of a team entry (I've done the last three comps solo), so I was stoked when I was able to join Universe Factory (definitely one of the most competitive teams in PyWeek, with several existing titles :) ) ... the team was very welcoming to new-comers. I focussed on graphics, 3D modelling and graphical programming (with a bit of sound-design) and it was a good experience working in a team but not leading or being responsible for major game mechanics: Cosmologicon, our team lead, ran a very tight ship and was very organised, so everyone seemed to be on the same page. I learnt a ton of practical experience in version control and managing working on software in a team (which I don't do much), so that was cool too. I also learnt how to use scripting with OpenSCAD to quickly turn around 3D environment models (which I documented in a game page blog here), a technique that I think I would definitely try to use again.



The game ended up coming second in the team division, which we were fairly happy with. There's a source and Windows standalone version that can be downloaded from the game page here:

"Storm Drain Odyssey" on PyWeek.org


Friday, August 31, 2018

"Ret-Row": a 5th Kajam entry


"Ret-row" is my entry for the 5th Kajam, a month-long event in which people make a video game from scratch, focusing each time on a specific aspect of game making, as chosen by its host. This Kajam's theme was "Retro", so a made a little retro style shoot-em-up where you control a row-boat. I started off pottering with some pixel art and music, not thinking I would actually submit anything, but found that the game started to take shape after a week or two, so decided to see it through to completion.

 

I did all of the game's pixel art on my phone in spare pockets of time using the app "8bit Painter". The music was done in Musescore using a set of NES instruments, to give a bit of an old-school flavour. The game is programmed in Python and uses Pygame.

 

Playthrough:



Downloads:

Mac OSX 10.7+: 
ret-row_osx.zip

Windows:
Ret-Row_win32.zip

Source code distribution (compatible with Windows/Mac OSX/Linux, requires python and pygame):
Ret-Row_source.zip