{"id":199,"date":"2020-12-28T16:18:30","date_gmt":"2020-12-28T15:18:30","guid":{"rendered":"https:\/\/daniel.liljeberg.io\/?page_id=199"},"modified":"2021-03-15T20:00:45","modified_gmt":"2021-03-15T19:00:45","slug":"spel","status":"publish","type":"page","link":"https:\/\/daniel.liljeberg.io\/sv\/min-portfolio\/spel\/","title":{"rendered":"Spel"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Through my years I have studied game development and worked on some commercial games. Today I have a few ideas about game I would like to make if I get the time, but at least a few &#8220;simple&#8221; games might turn up here.<\/p>\n\n\n\n<div id=\"Asteroidz\" class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h2 class=\"wp-block-heading\">Ateroidz<\/h2>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<p class=\"wp-block-paragraph\">Year: 2020<br>Platform: Windows<\/p>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Asteroidz saw life as last minute a joke. Before leaving Kamstrup I was asked by the PO to create some kind of easter egg in MCom. So I created a basic Asteroid clone at home and named it Asteroidz since we all know a Z at the end makez thingz much cooler. If you know where to click in the MCom Client, you can play Asteroidz at work&#8230; Or take the easy route and just download it here \ud83d\ude42<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button is-style-fill\"><a class=\"wp-block-button__link\" href=\"https:\/\/drive.google.com\/file\/d\/1jHAey4s2n2YB7hKI2SVb3pRHatqIM_y1\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Download Asteroidz.zip (2.7MB)<\/a><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Asteroidz-title.png\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"577\" src=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Asteroidz-title-1024x577.png\" alt=\"Asteroidz Title Screen\" class=\"wp-image-201\" srcset=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Asteroidz-title-1024x577.png 1024w, https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Asteroidz-title-300x169.png 300w, https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Asteroidz-title-768x433.png 768w, https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Asteroidz-title.png 1278w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Title Screen<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Asteroidz-level.png\"><img decoding=\"async\" width=\"1024\" height=\"577\" src=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Asteroidz-level-1024x577.png\" alt=\"\" class=\"wp-image-200\" srcset=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Asteroidz-level-1024x577.png 1024w, https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Asteroidz-level-300x169.png 300w, https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Asteroidz-level-768x433.png 768w, https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Asteroidz-level.png 1278w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Game Play<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h2 class=\"wp-block-heading\">Power Racing<\/h2>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<p class=\"wp-block-paragraph\">Year: 2008<br>Platform: Windows<\/p>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Power Racing was meant to be the next title from PowerChallange and was meant to bring the action packed 3D gameplay from our MMO football (soccer) game to the racing circuit. Unfortunately the financial crisis of 2008 hit before the game was ready affecting the game that never saw the light of day.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I worked mostly on backend code and frontend for the web portion for this game since it shared a lot of functionality with out other action based games such as Power Soccer and others that were under development.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"nv-iframe-embed\"><iframe title=\"Power Challenge - Power Racing Prelaunch site Trailer\" width=\"1200\" height=\"675\" src=\"https:\/\/www.youtube.com\/embed\/9aPbWL8WrWA?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/div>\n<\/div><figcaption>Early trailer of Power Racing<\/figcaption><\/figure>\n<\/div><\/div>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h2 class=\"wp-block-heading\" id=\"managerzone\">ManagerZone<\/h2>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<p class=\"wp-block-paragraph\">Year: 2001<br>Platform: Windows<\/p>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">ManagerZone is a MMO soccer manager game that has been played by millions around the world. There have even been ManagerZone World Cups where the best managers get to be managers over their countrys official teams to face of for the virtual World Cup trophy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I worked on all kinds of things for this game. Backend and frontend work for the web client, payment processing, match simulators, launchers and on and on.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button is-style-fill\"><a class=\"wp-block-button__link\" href=\"https:\/\/www.managerzone.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Play ManagerZone<\/a><\/div>\n<\/div>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"nv-iframe-embed\"><iframe title=\"ManagerZone Football\" width=\"1200\" height=\"675\" src=\"https:\/\/www.youtube.com\/embed\/K5Q9TYJ38Ng?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/div>\n<\/div><figcaption>ManagerZone<\/figcaption><\/figure>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/ManagerZone_newscreen_2-560x350-1.jpg\"><img decoding=\"async\" width=\"560\" height=\"350\" src=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/ManagerZone_newscreen_2-560x350-1.jpg\" alt=\"\" class=\"wp-image-214\" srcset=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/ManagerZone_newscreen_2-560x350-1.jpg 560w, https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/ManagerZone_newscreen_2-560x350-1-300x188.jpg 300w\" sizes=\"(max-width: 560px) 100vw, 560px\" \/><\/a><figcaption>ManagerZone gave the players many options to view their matches. One was a 3D client that shared a lot of DNA with the engine used in Power Soccer.<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/managerzone-screen4.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"375\" src=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/managerzone-screen4.jpg\" alt=\"\" class=\"wp-image-215\" srcset=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/managerzone-screen4.jpg 500w, https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/managerzone-screen4-300x225.jpg 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/a><figcaption>Training your squad and coming up with the best tactics against your opponents are key.<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h2 class=\"wp-block-heading\">ManagerZone Hockey<\/h2>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<p class=\"wp-block-paragraph\">Year: 2007<br>Platform: Windows<\/p>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">ManagerZone also came in a hockey variant. It shares a lot of DNA&#8230; and code. But has specific code, simulators etc to handle the game of hockey.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button is-style-fill\"><a class=\"wp-block-button__link\" href=\"https:\/\/www.managerzone.com\/hockey\/\" target=\"_blank\" rel=\"noreferrer noopener\">Play ManagerZone Hockey<\/a><\/div>\n<\/div>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"nv-iframe-embed\"><iframe title=\"ManagerZone Hockey\" width=\"1200\" height=\"675\" src=\"https:\/\/www.youtube.com\/embed\/dyKkZoFpuIA?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/div>\n<\/div><figcaption>ManagerZone<\/figcaption><\/figure>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/mz-hockey.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"290\" height=\"174\" src=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/mz-hockey.jpg\" alt=\"\" class=\"wp-image-217\"\/><\/a><figcaption>3D match viewer of ManagerZone Hockey<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/mz-hockey-tactics.png\"><img loading=\"lazy\" decoding=\"async\" width=\"593\" height=\"315\" src=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/mz-hockey-tactics.png\" alt=\"\" class=\"wp-image-218\" srcset=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/mz-hockey-tactics.png 593w, https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/mz-hockey-tactics-300x159.png 300w\" sizes=\"(max-width: 593px) 100vw, 593px\" \/><\/a><figcaption>Tactics editor of ManagerZone Hockey<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h2 class=\"wp-block-heading\" id=\"power-soccer\">Power Soccer<\/h2>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<p class=\"wp-block-paragraph\">Year: 2005<br>Platform: Windows<\/p>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Before FIFA Online there was Power Soccer and from what I heard back in the day EA had their eyes on it. Power Soccer was a 3D MMO action oriented football (soccer for those who call football running with the ball in your hand) game. I worked on back end and front end parts of the game. The game itself shared a lot of DNA with our other football game, the MMO football management simulator ManagerZone.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button is-style-fill\"><a class=\"wp-block-button__link\" href=\"http:\/\/www.powersoccer.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Power Soccer (discontinued)<\/a><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/pressrelease_78044_1236808117.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"250\" height=\"224\" src=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/pressrelease_78044_1236808117.jpg\" alt=\"\" class=\"wp-image-211\"\/><\/a><figcaption>Browser based frontend<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/sport-mmo-games-power-soccer-pass-kick-screenshot-666x374-1.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"666\" height=\"374\" src=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/sport-mmo-games-power-soccer-pass-kick-screenshot-666x374-1.jpg\" alt=\"\" class=\"wp-image-212\" srcset=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/sport-mmo-games-power-soccer-pass-kick-screenshot-666x374-1.jpg 666w, https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/sport-mmo-games-power-soccer-pass-kick-screenshot-666x374-1-300x168.jpg 300w\" sizes=\"(max-width: 666px) 100vw, 666px\" \/><\/a><figcaption>3D matches controllable via keyboard, mouse or game pad<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"nv-iframe-embed\"><iframe title=\"Power Soccer Gameplay - First Look HD\" width=\"1200\" height=\"675\" src=\"https:\/\/www.youtube.com\/embed\/UoCwiRX9MaI?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/div>\n<\/div><figcaption>What Power Soccer looked like back in 2010. (Source: MMOHuts)<\/figcaption><\/figure>\n<\/div><\/div>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<div id=\"EndOfRoad\" class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h2 class=\"wp-block-heading\" id=\"end-of-road\">End of Road<\/h2>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<p class=\"wp-block-paragraph\">Year: 2002<br>Platform: Windows<\/p>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">End of Road was a prototype developed for the Swedish game company UDS during a period of five weeks and was pretty basic. It involved a time trail mode, a city map done in Maya and exported to our engine via a MEL-script we wrote. The car was handled as real hovering cars using rigid body physics and the car could be handled by both keyboard and joystick (wheel and pedals). Like most of our projects we started pretty much from scratch and wrote everything we needed and it was built using SDL and OpenGL to be able to compile and run on multiple operating systems. The response from UDS was very positive and they had a hard time believing that we created this in just five weeks, from scratch, which was a great boost to us.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As with most of our projects we also included a level editor were you could place objects and lights in the world. The world map was divided by the engine into a bsp tree and we implemented frustum culling etc to keep performance up. Stencil shadows were used on the car but since it didn&#8217;t feel grounded I, in the last minute, added a direct drop shadow under the car. Using another stencil shadow, of the original car model&#8230; with all the polygons \ud83d\ude42<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Most of our ideas made it into the game in the few weeks we had, for instance jumping from a roof at one part in the map. Doing this when actually simulating the rigid body physics of a hovering car was something we weren&#8217;t sure how well it would work, but it turned out to work perfectly. A boost was something we didn&#8217;t have time to implement and if you play the game today that is probably a good thing, since computers today are so much faster than what we had to work with. So the car today manages to get a bit further out from the camera than was intended.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If the old installation package I made back in the day still works you are free to give the prototype a try.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button is-style-fill\"><a class=\"wp-block-button__link\" href=\"https:\/\/drive.google.com\/file\/d\/1JxeQX4u9i_TCDnBv7vwP99JEqWsQxAJT\/view?usp=sharing\" target=\"_blank\" rel=\"noreferrer noopener\">Download End of Road (150MB)<\/a><\/div>\n<\/div>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><a href=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/EndOfRoad.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/EndOfRoad.jpg\" alt=\"End of Road\" class=\"wp-image-242\" width=\"578\" height=\"434\"\/><\/a><\/figure>\n<\/div><\/div>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h2 class=\"wp-block-heading\" id=\"rts\">RTS<\/h2>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<p class=\"wp-block-paragraph\">Year: 2002<br>Platform: Windows<\/p>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Another five week project while studying game development. The game made use of an automated level generator, computer player RTS style AI and a thread based A* algorithm to handle the units movements. The player could build oil pumps for resources and use trucks to collect coal from mines. Then the player could build an armory and from that build tanks and jeeps.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As with most of our projects we also included a level editor were you could place objects, lights etc in the world.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/RTS.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"315\" height=\"235\" src=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/RTS.jpg\" alt=\"\" class=\"wp-image-243\" srcset=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/RTS.jpg 315w, https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/RTS-300x224.jpg 300w\" sizes=\"(max-width: 315px) 100vw, 315px\" \/><\/a><figcaption>RTS prototype game play<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2021\/01\/RTSObjectEditor.png\"><img loading=\"lazy\" decoding=\"async\" width=\"722\" height=\"644\" src=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2021\/01\/RTSObjectEditor.png\" alt=\"\" class=\"wp-image-380\" srcset=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2021\/01\/RTSObjectEditor.png 722w, https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2021\/01\/RTSObjectEditor-300x268.png 300w\" sizes=\"(max-width: 722px) 100vw, 722px\" \/><\/a><figcaption>Editor for objects in the game world.<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/RTS-gui-concept.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1011\" height=\"753\" src=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/RTS-gui-concept.png\" alt=\"\" class=\"wp-image-244\" srcset=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/RTS-gui-concept.png 1011w, https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/RTS-gui-concept-300x223.png 300w, https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/RTS-gui-concept-768x572.png 768w\" sizes=\"(max-width: 1011px) 100vw, 1011px\" \/><\/a><figcaption>Concept drawings of GUI<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2021\/01\/RTSObjectEditorBuldings.png\"><img loading=\"lazy\" decoding=\"async\" width=\"724\" height=\"642\" src=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2021\/01\/RTSObjectEditorBuldings.png\" alt=\"\" class=\"wp-image-381\" srcset=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2021\/01\/RTSObjectEditorBuldings.png 724w, https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2021\/01\/RTSObjectEditorBuldings-300x266.png 300w\" sizes=\"(max-width: 724px) 100vw, 724px\" \/><\/a><figcaption>The object editor for buildings where you could set building upgrade paths, what type of units a given building could produce etc.<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h2 class=\"wp-block-heading\" id=\"xaviour\">Xaviour<\/h2>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<p class=\"wp-block-paragraph\">Year: 2002<br>Platform: Windows<\/p>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Xaviour was the first &#8220;big&#8221; development project we got to do during my studies in game development. It was also a sign of what was to come for me and my fellow student Magnus that I ended up working a lot with on projects like this. We got five weeks to plan, design and develop something. Since we had not taken any course in C++ or object oriented development yet and had done very little that drew even a single pixel on screen the idea was probably to keep it simple. But we soon found out that me and Magnus, especially when pushing each other, didn&#8217;t know what simple was.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So, without having started the first course in C++ yet, no knowledge of 3D programing, OpenGL etc we set ourselves our goal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">-&#8220;How about a 3D shoot-em&#8217;up prototype, written in object oriented C++, OpenGL utilizing this new SDL library we just found?&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">-&#8220;Yea, with powerups, a level editor, the ability to create complex objects by linking objects together, at least one complete level&#8230; and a boss fight!&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">-&#8220;And a particle system for smoke, explosions etc. And animated textures&#8230;&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Looking back at it I can see that we set ourselves quite ambitious goals. But, perhaps partly due to us not reflecting about that at the time, we ended up delivering all that we had set out to do during those five weeks. Granted we did spend some late nights coding, 3D modeling, creating music and sound effects etc&#8230; hehe.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The initial idea, which was probably why we went with 3D instead of 2D, was to allow the perspective to change. This is evident from the old design document where we wanted the first level to be over head and the second to be from the side. We even talked about changing the perspective half way through levels etc. Due to time constraints we only made the first level though.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Although we though we delivered we felt that our editor was pretty basic etc. but we got a big boost in confidence when we showed the finished project to someone from UDS who applauded our tools and said that &#8220;this is more than we get to help us in most of our development&#8221;. Perhaps he lied a bit to be nice, but it made our day.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link\" href=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Xavior.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">Download &#8220;Design&#8221; Document<\/a><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Xaviour.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"320\" height=\"241\" src=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Xaviour.jpg\" alt=\"\" class=\"wp-image-245\" srcset=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Xaviour.jpg 320w, https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Xaviour-300x226.jpg 300w\" sizes=\"(max-width: 320px) 100vw, 320px\" \/><\/a><figcaption>Xaviour<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"794\" height=\"597\" src=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2021\/01\/Xaviour-early-title.png\" alt=\"\" class=\"wp-image-383\" srcset=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2021\/01\/Xaviour-early-title.png 794w, https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2021\/01\/Xaviour-early-title-300x226.png 300w, https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2021\/01\/Xaviour-early-title-768x577.png 768w\" sizes=\"(max-width: 794px) 100vw, 794px\" \/><figcaption>Early title screen. Had a level scrolling in the background with enemies, building etc moving by.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Xaviour-attack-patterns.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"605\" height=\"454\" src=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Xaviour-attack-patterns.jpg\" alt=\"\" class=\"wp-image-246\" srcset=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Xaviour-attack-patterns.jpg 605w, https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Xaviour-attack-patterns-300x225.jpg 300w\" sizes=\"(max-width: 605px) 100vw, 605px\" \/><\/a><figcaption>Testing enemy attack patterns<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Xaviour-level-editor-with-gui.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"452\" height=\"340\" src=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Xaviour-level-editor-with-gui.jpg\" alt=\"\" class=\"wp-image-250\" srcset=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Xaviour-level-editor-with-gui.jpg 452w, https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Xaviour-level-editor-with-gui-300x226.jpg 300w\" sizes=\"(max-width: 452px) 100vw, 452px\" \/><\/a><figcaption>Level editor used to place objects, enemies, set enemy movement patterns etc.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Xaviour-object-editor.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"452\" height=\"334\" src=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Xaviour-object-editor.jpg\" alt=\"\" class=\"wp-image-251\" srcset=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Xaviour-object-editor.jpg 452w, https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Xaviour-object-editor-300x222.jpg 300w\" sizes=\"(max-width: 452px) 100vw, 452px\" \/><\/a><figcaption>Object editor to scale, rotate and combine objects to other objects.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2021\/01\/XaviourWeaponsEditor.png\"><img loading=\"lazy\" decoding=\"async\" width=\"698\" height=\"488\" src=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2021\/01\/XaviourWeaponsEditor.png\" alt=\"\" class=\"wp-image-384\" srcset=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2021\/01\/XaviourWeaponsEditor.png 698w, https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2021\/01\/XaviourWeaponsEditor-300x210.png 300w\" sizes=\"(max-width: 698px) 100vw, 698px\" \/><\/a><figcaption>Weapons editor where combinations of weapons and their upgrades could be built.<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Xaviour-eraly-test.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"454\" height=\"340\" src=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Xaviour-eraly-test.jpg\" alt=\"\" class=\"wp-image-247\" srcset=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Xaviour-eraly-test.jpg 454w, https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Xaviour-eraly-test-300x225.jpg 300w\" sizes=\"(max-width: 454px) 100vw, 454px\" \/><\/a><figcaption>Early testing<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Xaviour-level-editor-no-gui.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"604\" height=\"453\" src=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Xaviour-level-editor-no-gui.jpg\" alt=\"\" class=\"wp-image-249\" srcset=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Xaviour-level-editor-no-gui.jpg 604w, https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Xaviour-level-editor-no-gui-300x225.jpg 300w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><\/a><figcaption>Level editor with GUI turned off<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Xaviour-explosion.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"605\" height=\"454\" src=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Xaviour-explosion.jpg\" alt=\"\" class=\"wp-image-248\" srcset=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Xaviour-explosion.jpg 605w, https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Xaviour-explosion-300x225.jpg 300w\" sizes=\"(max-width: 605px) 100vw, 605px\" \/><\/a><figcaption>Testing dynamic lighting and particle system<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Xaviour-object-editor-properties.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"454\" height=\"502\" src=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Xaviour-object-editor-properties.jpg\" alt=\"\" class=\"wp-image-252\" srcset=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Xaviour-object-editor-properties.jpg 454w, https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Xaviour-object-editor-properties-271x300.jpg 271w\" sizes=\"(max-width: 454px) 100vw, 454px\" \/><\/a><figcaption>Properties editor for objects<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2021\/01\/ParticleSystemEditor.png\"><img loading=\"lazy\" decoding=\"async\" width=\"521\" height=\"696\" src=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2021\/01\/ParticleSystemEditor.png\" alt=\"\" class=\"wp-image-378\" srcset=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2021\/01\/ParticleSystemEditor.png 521w, https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2021\/01\/ParticleSystemEditor-225x300.png 225w\" sizes=\"(max-width: 521px) 100vw, 521px\" \/><\/a><figcaption>Particle system editor. With a click you could see your changes in engine in a small preview window.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2021\/01\/ParticleSystemEditorAbout.png\"><img loading=\"lazy\" decoding=\"async\" width=\"466\" height=\"155\" src=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2021\/01\/ParticleSystemEditorAbout.png\" alt=\"\" class=\"wp-image-379\" srcset=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2021\/01\/ParticleSystemEditorAbout.png 466w, https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2021\/01\/ParticleSystemEditorAbout-300x100.png 300w\" sizes=\"(max-width: 466px) 100vw, 466px\" \/><\/a><figcaption>Since I, 20 years later, didn&#8217;t remember how it worked and got the editor to crash I guess I didn&#8217;t &#8220;do things the right way&#8221; \ud83d\ude42<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h2 class=\"wp-block-heading\" id=\"dolly\">Dolly<\/h2>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<p class=\"wp-block-paragraph\">Year: 2002<br>Platform: Windows<\/p>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Dolly was a simple mouse driven game where you were meant to avoid the wolves and make your way through the level and get safe back home. The engine that we used was originally a software based tile rendering engine that I had created early on in our studies. For Dolly we re-wrote the renderer in OpenGL and were able to use hardware acceleration. This allowed us to not only achieve better performance but also enabled us to implement some nice effects. One being a particle system that supported several emitter types and could handle both 2D sprites and 3D objects. Something we later used in other games for exploding objects etc. The engine clearly needed a name and was thereafter called the <strong>Dolly Engine<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The game was meant as an experimental game used to test out the A* pathfinding algorithm. As with most of our projects we went over board for the time we had and created a level editor that allowed for creation of levels in which Dolly could move around.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Dolly.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"274\" height=\"205\" src=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Dolly.jpg\" alt=\"\" class=\"wp-image-240\"\/><\/a><figcaption>Dolly in the forest of the Dolly Engine<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2021\/01\/ObjectEditor.png\"><img loading=\"lazy\" decoding=\"async\" width=\"622\" height=\"640\" src=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2021\/01\/ObjectEditor.png\" alt=\"\" class=\"wp-image-377\" srcset=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2021\/01\/ObjectEditor.png 622w, https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2021\/01\/ObjectEditor-292x300.png 292w\" sizes=\"(max-width: 622px) 100vw, 622px\" \/><\/a><figcaption>Editor for object in the world.<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Dolly-editor.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"431\" height=\"311\" src=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Dolly-editor.jpg\" alt=\"\" class=\"wp-image-241\" srcset=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Dolly-editor.jpg 431w, https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/Dolly-editor-300x216.jpg 300w\" sizes=\"(max-width: 431px) 100vw, 431px\" \/><\/a><figcaption>Dolly level editor<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2021\/01\/ScriptEditor.png\"><img loading=\"lazy\" decoding=\"async\" width=\"937\" height=\"614\" src=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2021\/01\/ScriptEditor.png\" alt=\"\" class=\"wp-image-382\" srcset=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2021\/01\/ScriptEditor.png 937w, https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2021\/01\/ScriptEditor-300x197.png 300w, https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2021\/01\/ScriptEditor-768x503.png 768w\" sizes=\"(max-width: 937px) 100vw, 937px\" \/><\/a><figcaption>Script editor to script behavior of object, enemies etc.<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<hr class=\"wp-block-separator\"\/>","protected":false},"excerpt":{"rendered":"<p>Through my years I have studied game development and worked on some commercial games. Today I have a few ideas about game I would like to make if I get the time, but at least a few &#8220;simple&#8221; games might turn up here. Ateroidz Year: 2020Platform: Windows Asteroidz saw life as last minute a joke.&hellip;&nbsp;<a href=\"https:\/\/daniel.liljeberg.io\/sv\/min-portfolio\/spel\/\" rel=\"bookmark\">Read More &raquo;<span class=\"screen-reader-text\">Spel<\/span><\/a><\/p>","protected":false},"author":1,"featured_media":231,"parent":20,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","neve_meta_reading_time":"","footnotes":""},"class_list":["post-199","page","type-page","status-publish","has-post-thumbnail","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Games - Daniel Liljeberg<\/title>\n<meta name=\"description\" content=\"Through my years I have studied game development and worked on some commercial games. Today I have a few ideas about game I would like to make if I get the time, but at least a few &quot;simple&quot; games might turn up here.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/daniel.liljeberg.io\/sv\/min-portfolio\/spel\/\" \/>\n<meta property=\"og:locale\" content=\"sv_SE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Games - Daniel Liljeberg\" \/>\n<meta property=\"og:description\" content=\"Through my years I have studied game development and worked on some commercial games. Today I have a few ideas about game I would like to make if I get the time, but at least a few &quot;simple&quot; games might turn up here.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/daniel.liljeberg.io\/sv\/min-portfolio\/spel\/\" \/>\n<meta property=\"og:site_name\" content=\"Daniel Liljeberg\" \/>\n<meta property=\"article:modified_time\" content=\"2021-03-15T19:00:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/games.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1440\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Ber\u00e4knad l\u00e4stid\" \/>\n\t<meta name=\"twitter:data1\" content=\"14 minuter\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/daniel.liljeberg.io\\\/my-portfolio\\\/games\\\/\",\"url\":\"https:\\\/\\\/daniel.liljeberg.io\\\/my-portfolio\\\/games\\\/\",\"name\":\"Games - Daniel Liljeberg\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/daniel.liljeberg.io\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/daniel.liljeberg.io\\\/my-portfolio\\\/games\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/daniel.liljeberg.io\\\/my-portfolio\\\/games\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/daniel.liljeberg.io\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/games.jpg\",\"datePublished\":\"2020-12-28T15:18:30+00:00\",\"dateModified\":\"2021-03-15T19:00:45+00:00\",\"description\":\"Through my years I have studied game development and worked on some commercial games. Today I have a few ideas about game I would like to make if I get the time, but at least a few \\\"simple\\\" games might turn up here.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/daniel.liljeberg.io\\\/my-portfolio\\\/games\\\/#breadcrumb\"},\"inLanguage\":\"sv-SE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/daniel.liljeberg.io\\\/my-portfolio\\\/games\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@id\":\"https:\\\/\\\/daniel.liljeberg.io\\\/my-portfolio\\\/games\\\/#primaryimage\",\"url\":\"https:\\\/\\\/daniel.liljeberg.io\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/games.jpg\",\"contentUrl\":\"https:\\\/\\\/daniel.liljeberg.io\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/games.jpg\",\"width\":2560,\"height\":1440,\"caption\":\"80's Synth sun set\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/daniel.liljeberg.io\\\/my-portfolio\\\/games\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/daniel.liljeberg.io\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Portfolio\",\"item\":\"https:\\\/\\\/daniel.liljeberg.io\\\/my-portfolio\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Games\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/daniel.liljeberg.io\\\/#website\",\"url\":\"https:\\\/\\\/daniel.liljeberg.io\\\/\",\"name\":\"Daniel Liljeberg\",\"description\":\"The is no place like 127.0.0.1\",\"publisher\":{\"@id\":\"https:\\\/\\\/daniel.liljeberg.io\\\/#\\\/schema\\\/person\\\/e2c3fe10971c37cff2669f5688834cd7\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/daniel.liljeberg.io\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"sv-SE\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/daniel.liljeberg.io\\\/#\\\/schema\\\/person\\\/e2c3fe10971c37cff2669f5688834cd7\",\"name\":\"Daniel Liljeberg\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@id\":\"https:\\\/\\\/daniel.liljeberg.io\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/DanielLiljeberg.png\",\"url\":\"https:\\\/\\\/daniel.liljeberg.io\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/DanielLiljeberg.png\",\"contentUrl\":\"https:\\\/\\\/daniel.liljeberg.io\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/DanielLiljeberg.png\",\"width\":424,\"height\":440,\"caption\":\"Daniel Liljeberg\"},\"logo\":{\"@id\":\"https:\\\/\\\/daniel.liljeberg.io\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/DanielLiljeberg.png\"},\"description\":\"Agile practitioner and advocate. Strong believer in the future of agile organizations, businesses and teams. Got my first computer, a C64, at age 7 and computers has been part of my life since then. Working professionally with development since the early 2000\u2019s in a vast array of technologies and roles. Social, easy going, fun loving guy with an appetite for new challenges and new knowledge who has been \u201cthere\u201d and done \u201cthat\u201d. That\u2019s a good way to sum it all up. Married and father of three kids. All true blessings ;)\",\"sameAs\":[\"https:\\\/\\\/daniel.liljeberg.io\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/danielliljeberg\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Spel - Daniel Liljeberg","description":"Through my years I have studied game development and worked on some commercial games. Today I have a few ideas about game I would like to make if I get the time, but at least a few \"simple\" games might turn up here.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/daniel.liljeberg.io\/sv\/min-portfolio\/spel\/","og_locale":"sv_SE","og_type":"article","og_title":"Games - Daniel Liljeberg","og_description":"Through my years I have studied game development and worked on some commercial games. Today I have a few ideas about game I would like to make if I get the time, but at least a few \"simple\" games might turn up here.","og_url":"https:\/\/daniel.liljeberg.io\/sv\/min-portfolio\/spel\/","og_site_name":"Daniel Liljeberg","article_modified_time":"2021-03-15T19:00:45+00:00","og_image":[{"width":2560,"height":1440,"url":"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/games.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Ber\u00e4knad l\u00e4stid":"14 minuter"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/daniel.liljeberg.io\/my-portfolio\/games\/","url":"https:\/\/daniel.liljeberg.io\/my-portfolio\/games\/","name":"Spel - Daniel Liljeberg","isPartOf":{"@id":"https:\/\/daniel.liljeberg.io\/#website"},"primaryImageOfPage":{"@id":"https:\/\/daniel.liljeberg.io\/my-portfolio\/games\/#primaryimage"},"image":{"@id":"https:\/\/daniel.liljeberg.io\/my-portfolio\/games\/#primaryimage"},"thumbnailUrl":"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/games.jpg","datePublished":"2020-12-28T15:18:30+00:00","dateModified":"2021-03-15T19:00:45+00:00","description":"Through my years I have studied game development and worked on some commercial games. Today I have a few ideas about game I would like to make if I get the time, but at least a few \"simple\" games might turn up here.","breadcrumb":{"@id":"https:\/\/daniel.liljeberg.io\/my-portfolio\/games\/#breadcrumb"},"inLanguage":"sv-SE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/daniel.liljeberg.io\/my-portfolio\/games\/"]}]},{"@type":"ImageObject","inLanguage":"sv-SE","@id":"https:\/\/daniel.liljeberg.io\/my-portfolio\/games\/#primaryimage","url":"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/games.jpg","contentUrl":"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/games.jpg","width":2560,"height":1440,"caption":"80's Synth sun set"},{"@type":"BreadcrumbList","@id":"https:\/\/daniel.liljeberg.io\/my-portfolio\/games\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/daniel.liljeberg.io\/"},{"@type":"ListItem","position":2,"name":"Portfolio","item":"https:\/\/daniel.liljeberg.io\/my-portfolio\/"},{"@type":"ListItem","position":3,"name":"Games"}]},{"@type":"WebSite","@id":"https:\/\/daniel.liljeberg.io\/#website","url":"https:\/\/daniel.liljeberg.io\/","name":"Daniel Liljeberg","description":"The is no place like 127.0.0.1","publisher":{"@id":"https:\/\/daniel.liljeberg.io\/#\/schema\/person\/e2c3fe10971c37cff2669f5688834cd7"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/daniel.liljeberg.io\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"sv-SE"},{"@type":["Person","Organization"],"@id":"https:\/\/daniel.liljeberg.io\/#\/schema\/person\/e2c3fe10971c37cff2669f5688834cd7","name":"Daniel Liljeberg","image":{"@type":"ImageObject","inLanguage":"sv-SE","@id":"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/DanielLiljeberg.png","url":"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/DanielLiljeberg.png","contentUrl":"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/DanielLiljeberg.png","width":424,"height":440,"caption":"Daniel Liljeberg"},"logo":{"@id":"https:\/\/daniel.liljeberg.io\/wp-content\/uploads\/2020\/12\/DanielLiljeberg.png"},"description":"Agile practitioner and advocate. Strong believer in the future of agile organizations, businesses and teams. Got my first computer, a C64, at age 7 and computers has been part of my life since then. Working professionally with development since the early 2000\u2019s in a vast array of technologies and roles. Social, easy going, fun loving guy with an appetite for new challenges and new knowledge who has been \u201cthere\u201d and done \u201cthat\u201d. That\u2019s a good way to sum it all up. Married and father of three kids. All true blessings ;)","sameAs":["https:\/\/daniel.liljeberg.io","https:\/\/www.linkedin.com\/in\/danielliljeberg\/"]}]}},"_links":{"self":[{"href":"https:\/\/daniel.liljeberg.io\/sv\/wp-json\/wp\/v2\/pages\/199","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/daniel.liljeberg.io\/sv\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/daniel.liljeberg.io\/sv\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/daniel.liljeberg.io\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/daniel.liljeberg.io\/sv\/wp-json\/wp\/v2\/comments?post=199"}],"version-history":[{"count":40,"href":"https:\/\/daniel.liljeberg.io\/sv\/wp-json\/wp\/v2\/pages\/199\/revisions"}],"predecessor-version":[{"id":504,"href":"https:\/\/daniel.liljeberg.io\/sv\/wp-json\/wp\/v2\/pages\/199\/revisions\/504"}],"up":[{"embeddable":true,"href":"https:\/\/daniel.liljeberg.io\/sv\/wp-json\/wp\/v2\/pages\/20"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/daniel.liljeberg.io\/sv\/wp-json\/wp\/v2\/media\/231"}],"wp:attachment":[{"href":"https:\/\/daniel.liljeberg.io\/sv\/wp-json\/wp\/v2\/media?parent=199"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}