GithubHelp home page GithubHelp logo

Consider Godot engine about kotcity HOT 10 CLOSED

kotcity avatar kotcity commented on May 13, 2024 1
Consider Godot engine

from kotcity.

Comments (10)

kotcity avatar kotcity commented on May 13, 2024 1

The main thing I am pointing out is that Kotlin/JavaFX may steer the project away from common game engine communities. Specifically, Godot, Unity, and Unreal all support C++ or C#, but not Java. Any Java code and UI will likely be difficult to integrate into the aforementioned engines.

I absolutely agree. However, I've got a great start and so far am the main contributor. I don't expect a lot of jump-ins on this project. Feel free to start a city-sim in Godot... you can refer to my code for inspiration. A few more good resources: "Sim City 2000: Power, Politics and Planning" by Nick Dargahi and "Urban Dynamics" by Jay Forrester.

If you're skeptical about Kotlin for games, check out some of the LibGDX examples: https://github.com/libgdx/libgdx/wiki/Using-libGDX-with-Kotlin I think you'll find it's surprisingly easy to pick up.

from kotcity.

kotcity avatar kotcity commented on May 13, 2024 1

wow I hadn't even seen this... I'm going to examine it but will not be canceling this project 😊

from kotcity.

kotcity avatar kotcity commented on May 13, 2024

Thanks for your feedback. One of the design decisions was to use Kotlin/JavaFX which would net not only good support for GPU accelerated graphics on Mac / Windows / Linux but also enable quick prototyping of UI with Gluon's Scene Builder, while using open source for the whole stack. Additionally, Kotlin has been a huge asset to the project with its awesome tooling and null-safety. Regarding JavaFX, I am using or will be using many features that are 1st class supported: embedded browsers, bar/line/graph charts, calendar widgets, etc. For better or for worse a city simulation needs many of these "data visualization" functions to really let the player know what's going on.

However: I consider this the "proving ground" for a decent open source city simulator. A good deal of work is being done in the current project to separate data / simulation from display. It is not inconceivable you could write a "Godot renderer" for the current sim code pretty easily and totally blow away the lousy graphics I have today.

I hope to reach a viable 1.0 (totally playable, workable game, even if scoped to ~SimCity 2000 levels) and then proceed on to a fully 3D 2.0 version, similar in appearance to Cities: Skylines but with the simulator closer to SimCity 4, hopefully able to re-use some of the simulation code or even logic from this version.

I don't consider this initial version the end-all be-all of city-simulation projects but I hope that it is a solid start and we can work together to evolve it to a place where we can have a free, open source, SimCity 4 replacement.

from kotcity.

brylie avatar brylie commented on May 13, 2024

One of the design decisions was to use Kotlin/JavaFX which would net not only good support for GPU accelerated graphics on Mac / Windows / Linux but also enable quick prototyping of UI

Godot has cross-platform (desktop and mobile) 3D graphics, with inbuilt physically-based rendering, global illumination, etc:

Godot 3D graphics render

Godot also has support for custom UI development (albeit not drag-and-drop widgets):

I hope to reach a viable 1.0 (totally playable, workable game, even if scoped to ~SimCity 2000 levels) and then proceed on to a fully 3D 2.0 version. ... I hope that it is a solid start and we can work together to evolve it to a place where we can have a free, open source, SimCity 4 replacement.

It just seems to me that adopting Godot would more readily support your goals, as it has support for 2D/3D game creation and is designed specifically for game development. In some regards, Godot is to game development what Gluon is to JavaFX UI creation, i.e. a drag-and-drop, point-and-click, fully-featured game engine and integrated development environment.

from kotcity.

kotcity avatar kotcity commented on May 13, 2024

I think Godot would be a foregone conclusion if I was doing an FPS or something where 3D is required and UI is simple / secondary. Believe it or not this is closer to a desktop / utility app than a conventional game. At this point 3D is a liability for me -- my main focus is building a rock-solid simulation. I don't want to waste time with 3D models, 3D transforms, shaders, etc. Think of KotCity as a desktop app with a GPU accelerated canvas embedded. Below is a shot of SimCity for Windows. You can see how many "boring" widgets are used vs. the actual game canvas. I will most likely end up with something quite similar.

embedded image

If I am successful with this project I hope to have learned enough to do a totally new implementation with another more capable engine (Unreal, Godot, other). For now, everything is going smoothly. I have a way to quickly prototype the interface and sim. I aim to get all the mistakes out of the way here :)

By the way, if you'd like to clone the project and use the simulator code and mesh it with Godot I don't think it'd be too tricky -- maybe we could support two "front-ends". I know FreeCiv does something similar.

If you would like to contribute, I'd be glad to have you. I think you'll find even if you aren't familiar with Kotlin it's an easy jump. I've only been a user for a few months and it's quite easy to get started.

from kotcity.

brylie avatar brylie commented on May 13, 2024

At this point 3D is a liability for me -- my main focus is building a rock-solid simulation. I don't want to waste time with 3D models, 3D transforms, shaders, etc

Godot also supports 2D games, and was originally developed primarily for 2D. 👾

Below is a shot of SimCity for Windows. You can see how many "boring" widgets are used vs. the actual game canvas

Godot also supports 'boring' UI widgets. 💤 😴

By the way, if you'd like to clone the project and use the simulator code and mesh it with Godot I don't think it'd be too tricky -- maybe we could support two "front-ends". I know FreeCiv does something similar.

The main thing I am pointing out is that Kotlin/JavaFX may steer the project away from common game engine communities. Specifically, Godot, Unity, and Unreal all support C++ or C#, but not Java. Any Java code and UI will likely be difficult to integrate into the aforementioned engines. 📦 😿

If you would like to contribute, I'd be glad to have you.

I am willing to contribute, but still maintain that aligning with the Godot engine/community is in the better interest of this project 🙂

References

Godot 3 docs:

Java compatibility with common game engines:

from kotcity.

brylie avatar brylie commented on May 13, 2024

Cool beans. Thanks for the book recommendations too! By the way, there are some really nice game assets for a city simulation game on OpenGameArt.

from kotcity.

kotcity avatar kotcity commented on May 13, 2024

Just to keep a clean board I am going to close this issue. Please keep me posted on any tech you think might benefit this project. :)

from kotcity.

brylie avatar brylie commented on May 13, 2024

By the way, the Derbados developer (@thomasleese) is/was building a city building game with Kotlin. Perhaps you two could collaborate?

FWIW, I found out about Derbados while researching open source city builder games to see what is out there :-)

from kotcity.

brylie avatar brylie commented on May 13, 2024

wow I hadn't even seen this... I'm going to examine it but will not be canceling this project

It seems the two projects have different, but perhaps complementary, features.

from kotcity.

Related Issues (10)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.