Skip to main content

Posts

Winners of the 1st KorGE gamejam

Recent posts

KorGE Gamejam #1 - Theme

The theme of the first KorGE gamejam is: Create a game which has borrowings from a classic game from video game history. You are totally free to creatively interpret the original as you like. Make a KorGE clone of an existing game classic or invent your own game with some subtle hints to a classic game. Your work will be judged by the following criteria Gameplay “is it fun?”, “how are the controls?”, “how original is the gameplay?” Graphics “how good does it look?” Feel “is the composition of audio, video and user-interaction coherent?” Submission Submit your game using the itch.io submission form on the game jam's info page. Please use the provided gradle-task jsWeb in the korge-package group and zip all the necessary files.  If you are drawn as one of the winners, we will also ask you for the whole source code. Sharing lottery The winners of the sharing lottery will be published at the end of the jam. A word from us This is our first

KorGE Tutorial - Writing 2048 game. Step 1 - Views

In the previous step we have created and configured a KorGE project for our game. In this step, we'll discuss KorGE's views and their positioning. We will also fill our stage with static elements using views, such as Graphics , Container , RoundRect , Text and Image . At the end of this step we will have the following result: So let's start! Views and containers View structure in KorGE is based on two types of elements: views and containers. A container is a view that can have other views as children. During rendering, KorGE goes through the elements of the root container (the game scene) and draws them in the order they're added to the view structure. The element added first will be covered by the other element added after it and overlapping it: Each view has a size ( width and height ) and a position ( x and y ). Width and height  determine the size of the rectangle bounding this view, x and y  determine its position inside the parent container. Main sizes Befor

KorGE Tutorial - Writing 2048 game. Step 0 - Introduction

KorGE  is an  open source  multiplatform game engine written in Kotlin . You can use it to develop your own games of various genres targeting JVM, Web, Android and iOS. In this tutorial I will guide you through the steps of writing a 2048 game using KorGE and Kotlin. You can check the resulting game  here . The source code is  on GitHub . This tutorial will have several parts - steps. In them, we will discuss the following features of KorGE: Views and graphics Text and images Positioning Mouse and keyboard events Animation Native Storage and more! Well, let's get started! Note: you need to install Java JDK and Intellij IDEA before start. Creating new project First, we need to create a new project for our game. There are two ways to do it: 1. Using KorGE Intellij plugin KorGE provides an IntelliJ plugin, that allows you to create KorGE projects. You can read this guide  or watch this video to know how to install the plugin and create a new

KorGE 1st Game Jam - 12-June - 14-June

Some updates about the KorGE organization: After a few years in development and lots of fixes and improvements, KorGE is getting mature. In April, Mikhail Reznichenko  and Nicolai Emig joined the KorGE organization. Mikhail Reznichenko, our member from Russia, has mostly worked on the technical part of KorGE and other korlibs and has given support at slack, he has done a remarkable work on the UI and other parts of the engine, helped with the intelliJ plugin and also created a 2048 clone as a sample of using KorGE. Nicolai Emig, our member from Germany, created an educational wrapper around KorGE and he is teaching it to his students, he has helped at slack, promoting the engine, and additionally he has contributed to the core with ideas and code including Sprite Animations and some samples to the core, he has also helped with organization of the Game JAM. In addition,  Tamara Gadea , joined as a sporadic contributor helping us some graphical assets, including the on

Why choose KorGE over other alternatives?

You might wonder why should you decide to use KorGE instead of other Game Engines. Compared to some other engines, KorGE itself has been less time in the market, and it has still a lot of room for improvement. But it already has some great features you can consider. Price KorGE is completely free and opensource. You can use it to create commercial games without having to pay anything: nor variable or fixed rates. Open KorGE and all its subprojects are fully opensource. That means that you can check the source code, propose changes and improvements and troubleshoot any problem you might find. Native Other engines might use C++, C#, interpreted languages and they either interpret your game logic or end compiling it to C++ and transpiling into something else. KorGE instead uses Kotlin Multiplatform that generates truly native code to each platform. In desktop or iOS it generates native code, in Android it generates DEX java-like code, and in the browser it generates plain JavaScript. Depe

KorGE 1.12.8.0: Huge Optimizations!

There is a new version of KorGE available now! This version includes a lot of optimizations done to make all the targets faster, specially on Kotlin/Native. We have rewritten the view's components system to be much faster and we have done tons of optimizations to reduce overhead of Kotlin/Native. Before this version, the 10.000 sprites sample Nico Emig did, was terribly slow on Kotlin/Native. After profiling a bit we found a few places worth optimizing, and with a few changes in all the libraries, we got it working much faster. It is still not as fast as the JVM counterpart, but much closer than before. Also a few versions ago, the Kotlin/JS optimization for instance checkings stopped from being applied due to a slight change in the output of the kotlin.js runtime. This version enables it again, making the JS target much faster than before. After the profiling, we noticed that moving the mouse in the 10K sample caused the game from pause for a long time. This was the components sys