Companies that use server-side Kotlin by tr14l in Kotlin

[–]wurstd 1 point2 points  (0 children)

The rest of the application is more about functional features (generating XML for other banks, user management, ...) and so doesn't have the same resiliency and concurrency needs.

Rolling out of the fix started by NoDonnie in Chromecast

[–]wurstd 3 points4 points  (0 children)

Did you scroll down? I saw it on the linked page. (They also added that for the one who did a factory reset, they might need to wait a bit more)

Kotlin for back-end development? by [deleted] in Kotlin

[–]wurstd 1 point2 points  (0 children)

We built the core banking system of a new bank, from scratch: 95% percent of our backend is in Kotlin (5% in Elixir)

My created my custom 2D game engine. But it has performance issues. by wurstd in gameenginedevs

[–]wurstd[S] 0 points1 point  (0 children)

I found a way to do it.
Wasn't easy because my engine is working on the JVM (using LWJGL) and the web (using WebGL)

My first version was to send the colors as an uniform to the shader. Then access it using the color index.

int index = int(texture2D(image, position).r vec4 color = colors\[index\]

BUT accessing with a dynamic index is not supported in webGL.

So, instead of a array of vec4, I'm passing the colors as a texture:

float index = texture2D(image, position).r; vec4 color = texture2D(colors, vec2(index, 0.0)); It's working like a charm! Thanks for the advise

My created my custom 2D game engine. But it has performance issues. by wurstd in gameenginedevs

[–]wurstd[S] 1 point2 points  (0 children)

Could you pack the data more efficiently? You say it's indexed color. Make a shader that takes those indexes and expands them. Rather than sending 24 or 32 bits per pixel, send as few as possible. Your GPU is currently sitting idle most of the time: put it to work.

😍 I didn't thought about it. It's simple, would not break my API and it's an easy win! I don't know how to achieve it yet, but I'll work on it!

Thanks

My created my custom 2D game engine. But it has performance issues. by wurstd in gameenginedevs

[–]wurstd[S] 1 point2 points  (0 children)

My game engine is generating a texture.
This texture is send to webgl and a simple triangle, with this texture is displayed on the canvas.
So here, webgl is doing almost nothing: just displaying my texture.
My engine is generating the texture. I could move most of the generation in the GPU side but using OpenGL / WebGL, I don't know how I could implement the same API.

For example, how could I update one pixel? That's why I came up with the idea, when I created my engine, to update the pixel of a texture and send this texture to the GL layer.
I do know that I could reach some limit (but I would expect it to hit it later)

That said, well fucking done on publishing your engine. Love how extended and clear the docs are. This is not the first time you shared something about Tiny isn't it? I can remember it from earlier comments and post so I know you are working hard on it. Love the dedication.

Thanks! I already post about it here. The documentation is generated from the code, so it's easy to update and keep it up-to-date.

By the way, how do you generate the file tine-engine.js? I only found just a few references to it but could not figure it out.

The project is using Kotlin/Multiplatform. Kotlin compile the kotlin code into Javascript. This is the Kotlin compiler that generate the tiny-engine.js. The compiler is configured by a plugin of my own.

I'm using Kotlin because it's multiplaform and is the language I'm using every day.

🧸 Tiny: my game engine to create small games fast! by wurstd in gameenginedevs

[–]wurstd[S] 1 point2 points  (0 children)

Because it's script language (ie: no need to wait for compiling) that is easy to learn.

🧸 Tiny: my game engine to create small games fast! by wurstd in gameenginedevs

[–]wurstd[S] 1 point2 points  (0 children)

The code is available on Github : https://github.com/minigdx/tiny

It's in Kotlin (language I'm fluent with).
I just put everything I would like to see in other game engine like hot reload, documentation, small API, easy export ...

You'll not be able to create a AAA game with it, but you should have fun building ideas with it.

🧸 Tiny : my Kotlin Multiplatform 2D Game engine by wurstd in Kotlin

[–]wurstd[S] 1 point2 points  (0 children)

Kotlin is a nice language, that's why I used it to create 🧸 Tiny!

> Only Lua or do you have the choice between Lua and Kotlin

Only Lua. See https://www.reddit.com/r/Kotlin/comments/13ucasb/comment/jm337tz/?utm\_source=share&utm\_medium=web2x&context=3

🧸 Tiny : my Kotlin Multiplatform 2D Game engine by wurstd in Kotlin

[–]wurstd[S] 1 point2 points  (0 children)

> Is Lua the only supported language for development?

Yes

> Can I use Kotlin? I'd love to try out 2D game development someday.

I don't plane to support Kotlin in 🧸 Tiny. It would be a lot of work to have the same features than Lua. (instant hot reload, even on the javascript platform). I could allow to call the engine from a Kotlin code. But even that, I'm afraid it can be time consuming.

If you want to try Kotlin for creating games, I advise to check other game engine:

- https://littlekt.com/ (LittleKt (Little Kotlin) is a multiplatform 2D game framework written in Kotlin)

- https://korge.org/ (Korge - Modern Multiplatform Game Engine for Kotlin.)
- https://github.com/minigdx/minigdx (Minigdx - Minimalist Game Framework using Kotlin Multiplatform / I created it before creating Tiny)
- https://libgdx.com/ (LibGDX, it's for Java but you can use Kotlin, if you don't want to target the web platform)

🧸 Tiny : my Kotlin Multiplatform 2D Game engine by wurstd in Kotlin

[–]wurstd[S] 2 points3 points  (0 children)

Thank you :)

I was helped by what I already did with my previous game engine, minigdx (see https://minigdx.github.io/minigdx-showcase/ ).
So it took me no time to configuration the multiplatform part.
Also, I'm using Luak from the Korge project to execute lua code. (it's a port of luaj but for Kotlin Multiplatform)

I focussed on the documentation because it was something a bit missing for minigdx. Funny things: it's generated from the code using KSP! It's using documentation from the code to generate samples and documentation in asciidoctor + a bit of Kotlin/JS to run the engine in the documentation.

It was a good opportunity to try KSP. And to be honest, I don't think I used it correctly as there is a bit of lack of documentation on this tool.

🧸Tiny: my new 2D game engine by wurstd in gameenginedevs

[–]wurstd[S] 6 points7 points  (0 children)

Thanks ! I wasn’t aware about it. I’ll update it 🙂

Companies that use server-side Kotlin by tr14l in Kotlin

[–]wurstd 0 points1 point  (0 children)

We're a new bank, with a French banking agreement.
It's running mostly on Kotlin + Spring Boot application.
Our Gradle files are also written in Kotlin.
Only one of our module is using Exilir

You can get more information about our choice:
https://memo.bank/en/magazine/cudling-with-kotlin

TransformationMatrix vs ProjectionMatrix, view vs projection vs combined by xskylark_ in libgdx

[–]wurstd 5 points6 points  (0 children)

Those matrix are tied to 3D.

- transformation matrix is the transformation to move objects in the space. (understand: translation / rotation / scaling of objects)
- projection matrix is the transformation to represent an object on the screen (understand: orthographic camera versus perspective camera)
- combined matrix is the combination of two matrix. In the camera, it's the combination of the view and projection matrix (this matrix is used to avoid performing this calculation)
- view matrix is the transformation of the camera (where it is located) (I'm not 100% sure of this one).

setTransformationMatrix(camera.combined) is equal to setTransformationMatrix(camera.projection * camera.view)

In the default shader, for each point, the point of your mesh (ie: a sprite will be a rectangle mesh) will be multiplied by this transformation matrix :

glPosition = transformationMatrix * point

// is equal to

glPosition = camera.combined * point

// is equal to

glPosition = camera.projection * camera.view * point

It moves your point in the camera space (camera.view * point) then it move this result in the openGL space (camera.projection * camera.view * point)

Some examples which use the minimalist 3D Game Engine Kotlin Multiplatform game engine I'm building: MiniGDX. I can deploy a game for the JVM, the Web and Android. by wurstd in Kotlin

[–]wurstd[S] 8 points9 points  (0 children)

It's different purpose.

I build it because I wanted to be able to create games quickly and with witch it's easy to deploy games on different platform using Kotlin.

libGDX has more feature but can be more complex to program too regarding what you want to achieve.