Hello, I'm Liam Wisniewski, a passionate indie video game developer, hoping to create impactful and creative games.

Got an interesting project? Send me a message at [email protected]

ABOUT

Hello, I'm Liam Wisniewski, a passionate indie game developer from Poland however currently located in the UK. I am a student studying a games development course with hopes of further progression. I have over 5 years of prior experience under my belt. I love creating video games and have been doing so for a while, with the goal to inspire and innovate.My work spans both creative and technical areas; including knowledge in various software, engines and operating systems. I have too much hobbies and love trying new things; I am currently developing my knowledge with Linux and have been daily driving it for a while now. I hope to inspire, which is also why I've created an online presence known as 'catinthebox', where I upload videos of tutorials, prototypes and my development journey. I also engage in freelance work (3D & Video Editing) and have worked for many different clients. I am available for freelance work, so if you're interested, leave me a message at [email protected].

SKILLS

SOFTWARE

- Blender
- 3dsMax
- Substance Painter
- Substance Designer
- Photoshop
- Aseprite
- Davinci Resolve
- Audacity

FOCUS TECHNIQUES

- Troubleshooting & Debugging, Game Development, Game Design, Prop Modelling, Shader Graphics, Asset Creation, UV

SOFTWARE

- Unity Engine
- Unreal Engine
- Godot Engine
- Blender

OPERATING SYSTEMS

- Linux (Advanced)
- Windows (Advanced)
- Mac (Basic)

HIGHLIGHTS

Some of my work that I am most proud of. You can view all of my 3D art on my artstation account.

PROTOTYPES & SYSTES

UNTITLED ROGUE-LIKE

An untitled top-down dungeon roguelike with unique 8-bit monochrome graphics. The visuals are not finalised and I am unsure if colour choices are final. Graphical elements heavily inspired by other simplistic 2D games. This has been my current project that I have been prototyping for a while, and I've developed many systems to understand what direction I want to pursue creating this game.I've developed systems such as smart enemy AI, semi-procedural dungeon generation with possibilities of expansion and other basic game-play mechanics (movement, basic combat & health).

How did I create smart enemy AI?Enemy AI is a difficult system to create. My approach consisted of creating a 'breadcrumb system' that the enemy uses. The player drops invisible location indicators periodically (every 0.5s) which mark the last known location of the player. The enemy detects the player using raycasts (once entering the enemies cone field of view); invisible lines traced from the enemy to the player. If they aren't obstructed, the player is visible to the enemy. It has been programmed to chase the player. I plan to create many different types of attacks and ways that the enemy chases the player (lunging, etc). Once the player exits the LOS (line of sight) of the enemy, it uses the invisible 'breadcrumbs' (location indicators) that the player drops to walk towards the last known location of the player.

How does my procedural generation system work?I've created semi-procedural level generation from scratch without much knowledge of how to approach a procedural generation system.The dungeon levels are not procedurally generated and instead are already premade (semi-procedural) which allows for more creative opportunities. All rooms contain a certain amount of doors which branch into other rooms. These dungeons are organised into categories depending on the nature of them (secret room, boss room, regular dungeon room). When the game is first started, an appropriate random room is instantiated at the centre of the world (0,0,0). Each door inside of a room is given a unique tag (#up, #down, #left, #right), which organises the location of all of the room exits.When the player collides with one of the doors, a transition animation is played and the old room is removed. A new room with is instantiated in the same position, and the player is teleported to the door with the opposite tag of the original door (#up -> #down). The new room that is instantiated has a check to make sure it has the opposite door of the original room (otherwise it would appear as if the player entered from a wall). The collider for the opposite door is removed. Chance is also utilised, with different chances to get a unique or boss room, and the percentage scaling as the player progresses for more rooms. This is also the same system for the exit room. This system is very lightweight and effective, however does not allow for the player to backtrack through the rooms.

Video