> if this project gets to a place where it's really awesome but just needs extra speed we can reach for that C++ or Rust book.
The JVM is fast enough for Minecraft, it should be plenty fast for this. But if you ever do want to compile to native then Kotlin/Native would make a lot more sense than a rewrite in a completely different language.
Well, "fast enough" is pretty vague. But bear in mind that Minecraft has never seemed to care about optimisation. For the longest time it was still running Java 7 even when Java 8 with the G1 collector had been out for a long time, and improved performance quite a bit.
HotSpot has a pauseless GC these days from Red Hat and is getting another one developed by the Java team itself, so even Minecraft's very heavy use of GC should be ok (heavy, after the new devs "improved" Notch's code to use objects everywhere instead of passing coordinates in separate parameters).
I am aware of it... we have somewhat divergent goals. I seek more of a re-creation of "SC4-style" city simulator, without agents for all traffic and so on. I think the big difference between this game and Citybound is that I'm trying for more of a statistical / stochastic approach vs. an agent based approach. I think the agent-based approach was one of the factors that led to SimCity 2013 not being that fun.
Citybound is aiming more for the Cities: Skylines approach to traffic and simulation.
I'm a big city-builder fan and have tried almost every one I can get my hands on. Among myself and some others, there is the feeling that the SimCity series peaked at SimCity 4 and I'm hoping to recapture that feel. It seems that Citybound is going in a totally different direction, which is fine, but that's not the aim of this project.
I hope to play Citybound when it is released but I do not think this project is redundant.
I dig it. What are you guys looking for in dev involvement? How casual can I be and still potentially contribute? I'm an Android dev who has been looking at sinking his teeth into kotlin for a bit now.
As casual as you want... this is a side project for all of us. One of our other guys is an Android dev just using this for Kotlin practice. Drop on in, check out our code, suggest ideas, whatever tickles your fancy!
If you want stop by our dev chat channel on https://gitter.im/kotcity/Lobby and ask us questions or reply here if that works best.
I agree with your theory that the agent-approach is flawed. I know Kotlin and I love the classic SimCity games so I'm gonna try and give the codebase a poke later.
Awesome! We have a good start but still need a lot of subsystems implemented. If you have an interest in SimCity stop on by our gitter channel and we can talk: https://gitter.im/kotcity/Lobby
Shameless plug: I'm working on a [Text GUI library](https://github.com/Hexworks/zircon) which has the option for isometric projection [like this](https://cdn.discordapp.com/attachments/205245036084985857/41...). It is completely decoupled from the backend (the simulation engine in your case) so if you are interested we can work together. I also work in Kotlin and I'm eager to put in some work to create a fun game. It also supports tilesets so you are not stuck with ASCII.
Just nitpicking, but this is not isometric, this is top-down oblique projection. Isometric is when all 3 axis are of equal length and separated by 120 degrees.
I think you're technically correct, but 'isometric' is also a pretty widely used non-technical term when describing video games which have some form of non-perspective 3D projection, even if the axes are unequally foreshortened.
Very cool! If you could play this in terminal it would be awesome. We could be a good testbed for your ideas -- we have kept the simulator separate from the UI / display.
Maybe, but it seems this post is to spread awarness to try and get other people involved in the project, not to actually play it. In that case, the language choice would be a big selling point
Since Maxis has more or less been gobbled up by EA I don't think we will ever see SimCity4++, so I think we DO need another city sim.
There are a few in the works but I don't think any "carry the torch" of the SC4-style game.
SimCity 4 has such staying power, new mods and lots are still being created to this day! It outlived SimCity 2013 by far.
Cities: Skylines, Banished, Citybound are all fun in their own right but I don't see any as a proper continuation of the SimCity series. (ignoring SC2013)
Interesting you say that, meanwhile Cities Skylines is the only city sim game I know of that's come out in the last 10 years that isn't ruined by EA or a shitware Farmville clone.
RPGs, FPSes have different themes and story, so there are a lot more variations. Plus many city sims can be modded.
You're probably right though. At the very least we could use more that aren't so traffic oriented. Maybe something with emphasis on pollution, agriculture, culture, utilities.
With the Java interop such a high priority for the Kotlin team over at JetBrains, Kotlin is sneaking its way into all kinds of Java environments -- from LOB apps to APIs, Java Web Services, etc.
Java might be a little annoying to wield, but the JVM is actually quite nice.
Whomever at JetBrains put a premium on Java interop should get a medal, because it's a VERY low friction move to go from Java development to Kotlin. You can port your project one file at a time and the tooling is excellent.
I have dabbled with all major JVM languages, yet if it wasn't for Spark and now Android, no customer would allow us to use anything besides Java itself.
My favorite example is a popular German light bulb brand, Osram, which is also known in Poland. In Polish it means roughly "I'll put my excrement [on it]" :P
We've taken pains to keep the sim code separate from the view / presentation layer. If you want to jump in and help us make it dual platform we'd be glad to have you.
We are using JavaFX which has some kind of Android support via (http://gluonhq.com/products/mobile/javafxports/) or you could simply just ignore our UI and add a native Android one on top of our simulator.
Yeah, bizarre criticism. Some of the most intricate games I've played are MUDs over telnet and many of their mechanics have never been matched by modern titles.
Doesn't mean they are less worthy games. The thought almost disgusts me, like only well funded projects can qualify for something as straightforward as a simulation.
The JVM is fast enough for Minecraft, it should be plenty fast for this. But if you ever do want to compile to native then Kotlin/Native would make a lot more sense than a rewrite in a completely different language.