# AXEL FRANZÉN ## Posts - [GRASS RENDERING](https://axelfranzen.com/grass-rendering/): The goal of this project is to get more familiar with instanced rendering and optimizing the rendering of a large amount of meshes. I also just wanted to make something that looks pretty as I’ve been down in the engine mines for a while now and working on something more graphics related felt like a nice change of pace. I’ve listed the references I used at the bottom of the page. To render all these grass meshes I’ll be using instance buffers (in my engine, which uses DirectX11) and vertex animation to make ’em wiggle around. a better look at […] - [MEMORY & PERFORMANCE](https://axelfranzen.com/memory-performance/): So it’s been a while since my last entry. This one has been laying around near-finished for around four months now and I figured it was about time to clean it up and publish it, so let’s pick up where we left off: Optimizations are required. We’re barely at a stable 60 fps in a test scene where the most exciting thing that is happening is a few particle effects and a character waving to the camera. So where do we start? Is it the shadowrendering? The collision system? I’m not much for guessing games so I’ll be using PIX […] - [ARCHITECTURE & DEPENDENCY](https://axelfranzen.com/architecture-and-dependency/): There is no other way to put it: The architecture of this engine is a mess. The graphics engine relies on the asset manager to load in shaders, and it relies on components from the game engine to render meshes. The Asset Manager relies on the graphics engine to load meshes, and the game engine to load assets like NavMeshes. And of course the game engine relies on both of these to do anything with assets or rendering. Circular dependencies such as these make a program harder to understand and more difficult to debug, which is why I’ll do my […] - [WRITING A DEVLOG](https://axelfranzen.com/writing-a-devlog/): Or: How i refactored my game engine to not give me conniptions about the engine My engine started as a rendering engine written in DirectX11 that I made as part of a course in graphics programming at The Game Assembly which grew to be something larger over time. It has a component system allowing creation of modular game objects, loading in scenes from file, as well as handling audio, among other features. During my second year at the school I used it to facilitate many of the other courses’ assignments like AI Behaviour and Networking. While I have tried to […] ## Pages - [AI WAVE TOOLS](https://axelfranzen.com/ai-wave-tools/): Our eighth game Pirats is a wave-based action game that required great control of how the enemies behaved, not only on an individual level but also as a group. We wanted to be able to balance how difficult each wave would be as well as controlling where the enemies would initially appear from and where they would run. To allow our level designers to easily tweak these things I made two tools in the Unreal Editor that could export the data we needed when starting the game in our own engine. path point editor Since we didn’t want the enemies […] - [BLOG](https://axelfranzen.com/blog/) - [PIRATS](https://axelfranzen.com/pirats/): Development Time: 7 weeks at 100%Engine: ROSE (Our own engine)Genre: Third Person Shooter, Tower DefenseTarget Platform: PC With our eight and final project at The Game Assembly we wanted to do something fun and goofy, so we decided to make a co-op game inspired by Orcs Must Die 2. The game features traps and weapons unique to each character that gives them their own way of dispatching enemies to prevent them from reaching their goal. Grab two controllers and a friend, and fight off hordes of rats together in this split-screen adventure! MY CONTRIBUTIONS - [DECAL RENDERING](https://axelfranzen.com/decal-rendering/): For our artists to be able to break up the visual repetetiveness of long corridors and make the setting of the game more grungey we decided that our engine needed the added feature of projected decals. Since our main rendering pipeline is deferred, the implementation of deferred decals that could read information from the gbuffer was relatively simple, but there were a few things that I wanted to fix. A problem that stood out to me was that when the direction of the decal projection got too close to being parallel with the surface it projected on it would create […] - [MATERIAL EDITOR](https://axelfranzen.com/material-editor/): In our sixth game project I worked closely with our technical artists to create a pipeline that would let them create and put visual effects into the game without relying as much on us programmers to implement them. I made a material editor that would let users create material-files that were readable by our game engine, containing the textures and shaders that would be used. This was built as an add-on to our already existing modelviewer which was created by my colleague Tobias Garpenhall. With this tool I wanted to give our artists something that would be easy to use, […] - [NAVIGATION MESH](https://axelfranzen.com/navigation-mesh/): For our sixth game project we created an ARPG which required us to implement functionality for creating a navigation mesh from an FBX-file, as well as AI agents that could move via this navmesh. In this video I had begun setting up the structure for the navigation mesh, with navigation nodes and edges that connect them. To test my implementation of the Astar-algorithm I set up a level with a randomly generated mesh that the agents could move on. In the video there is one player controlled character that moves to the point where the player clicks, and two simple […] - [SHATTERED](https://axelfranzen.com/shattered/): Development Time: 14 weeks at 50%Engine: ROSE (Our own engine)Genre: Survival HorrorTarget Platform: PC For our seventh game project we looked at games like Silent Hill and Resident Evil for inspiration and as reference for what we wanted to make. The result was an atmospheric survival horror game with an artstyle reminiscent of PlayStation 2 games. MY CONTRIBUTIONS - [SPITE: TO HEL AND BACK](https://axelfranzen.com/spite-to-hel-and-back/): Development Time: 4 + 10 weeks at 50%Engine: ROSE (Our own engine)Genre: ARPGTarget Platform: PC Since Spite was made in our own engine, the production spanned two different projects; The first was mainly for building functionality to import level data from the Unreal Editor and to render a scene in our custom engine without any actual gameplay. The second project was the game itself. MY CONTRIBUTIONS - [SCALEBOUND](https://axelfranzen.com/scalebound/): Development Time: 8 weeks at 50%Engine: TGE (Inhouse engine)Genre: 3D topdown adventureTarget Platform: PC Similarly to our third project, this game was created in the TGE framework, but with a new group and very little time we were encouraged to reuse as much code as we could from the previous project. MY CONTRIBUTIONS - [AMEN TO MAYHEM](https://axelfranzen.com/amen-to-mayhem/): Development Time: 14 weeks at 50%Engine: TGE (Inhouse engine)Genre: 2.5D PlatformerTarget Platform: PC Amen to Mayhem was the third project I worked on, and it was built on top of a graphics framework that the school provided to us. This time around we weren’t using Unity for anything other than creating the level layouts, so all the gameplay and underlying systems had to be created by me and the other programmers in my group. MY CONTRIBUTIONS - [DRACULIGHT](https://axelfranzen.com/draculight/): Development Time: 6 weeks at 50%Engine: UnityGenre: PuzzleTarget Platform: Mobile For our second game we were tasked with creating a puzzle game for mobile platforms, which forced us to think a lot more about performance. MY CONTRIBUTIONS - [DEATH INC.](https://axelfranzen.com/death-inc/): Development Time: 6 weeks at 50%Engine: UnityGenre: RunnerTarget Platform: PC Death Inc. was the first game project I worked on at The Game Assembly, and was my first experience working on a game in a larger group, as well as following an Agile mindset. MY CONTRIBUTIONS - [DYNAMIC WOUND SYSTEM](https://axelfranzen.com/dynamic-wound-system/): MOTIVATION The idea for this sprang to life during the development of our seventh game project at The Game Assembly; a third person survival horror game inspired by games like Silent Hill and Resident Evil. We wanted the action to feel impactful and somewhat gruesome to fit the themes of the game, which is why we opted to put a lot of work into trying something that would make the player really feel like their actions affected the enemies. GOAL The initial goal was to allow in-game information like positions of objects to be drawn to a separate texture that […] - [ABOUT ME](https://axelfranzen.com/about/): I’m a programmer who specializes in building and developing systems, and I believe that good planning and architecture is key when it comes to saving time and sanity in software development. I am constantly aiming to learn new things and expanding the array of tools at my disposal. When it comes to game development I consider myself a bit of a generalist, and I pride myself in being able to pick up and learn new skills quickly. Being a former solo hobby-developer I’ve played around with 3D modelling, level design, and sound design, which has given me a big advantage […] [comment]: # (Generated by Hostinger Tools Plugin)