Elega Corporation October 2019 Update
Elega Corporation is now working, primarily, on 3 main projects: Project Papa, Project Edu 6, and updates to Kalling Kingdom. Project Papa is sort of a working codename for a C# related project and Project Edu 6 is, of course, the 6th Pluralsight course.
After the launch of Kalling Kingdom, activity for Elega Corporation has been ramped up considerably. Updates to Kalling Kingdom are now in the to-do list among needing to handle a few other priorities. In working with multiple projects at simultaneously, it means needing to balance things in a way that, while we began juggling many months back, feels like things are about to progress to the next level.
Releasing Kalling Kingdom was a major milestone for the company, being the first videogame developed under the Elega Corporation label and also being the first game I have shipped personally. There are a number of new features being planned for it as well, including: tool tips throughout the UI to assist new players in understanding how to play the game, additional city events, gameplay balance tweaks based on different decisions, market crashes and booms, and making use of how buildings are placed on the canvas (which looks vaguely like grass). While I make no promises, there has also been consideration for possibly introducing resources and a more legitimate trading system into the game with other towns (as opposed to just accepting or declining proposed trade deals via city events).
If none of that made sense, it is probably because you have not played Kalling Kingdom in length or watched the full YouTube playlist documenting most of its original 4 months in development. Much of Kalling Kingdom's source code is visible on live stream as you can encounter me creating the game in front of an audience.
Work is being done to bring Kalling Kingdom to other platforms and storefronts, including Steam, and considerations for a possible release on Linux and Android operating systems.
Dreaming About the Kalling Kingdom IP
For the longer term, there are other plans in mind for Kalling Kingdom that extend the game far beyond its normal state as a turn-based city builder. The hope is to eventually launch a Kalling Kingdom website that begins filling out the lore, expanding its fictional universe, providing new artwork that sprawls across that lore, and eventually: have other games that take place within its same universe.
While there is nothing to announce in that area at this time, I have been having a lot of fun thinking about it. There were some concepts that were a part of the design for the original game that were meant to strike players on more of an emotional level and some of those dimensions to the game had to be cut due to the development time constraint.
Overall, that may have been for the best as the game works pretty well as a very thinking-heavy strategy game without much emotional investment. Most folks out there would probably agree that to follow some emotional narrative or something similar: other game genres have historically worked a lot better for that.
I do have an action game idea I am toying around with in the background here and there. For now, it is one of those stories and designs that you kind of chew on right before falling asleep at night. I have done a little bit of writing and just a tiny bit of code to test some assumptions... but for the most part there is no real development on a new Kalling Kingdom game yet.
Besides, there is more to be added on the original game! I will want to complete those ideas first.
Elega Corp Learning
The next Pluralsight course is now in full production mode and we expect it to be live on the platform sometime in January of 2020. If you haven't seen the other Pluralsight courses, I highly recommend it if you are someone who is considering taking a new direction in you existing career, or even wanting to launch a brand new one.
I will hold off on speaking too publicly about the topic of the course except to say that it is to add to the Salesforce admin track on Pluralsight. The first course I ever did was on asynchronous Apex, and it would be nice to eventually revisit some developer related courses. I hope to do that in the future!
And Project Papa?
One bit of news I will say about all the secrecy regarding Project Papa is that its significance has gradually increased with time here at Elega Corp. The plan is to begin making the project a top priority, as it has received a significant time investment so far, but will easily receive the biggest amount of time ever put into an Elega Corporation project so far, and perhaps more time than I have ever personally invested on any project either.
For the tiny team that exists here at Elega Corp: Project Papa is a giant undertaking. For a moderate sized development team, it is the sort of thing that might take them a couple years. For us, it has been in development now since 2017 with only our part-time hours on and off being able to be devoted to it. The hope is to change that during Q4 of 2019 and onward into 2020 until the project's completion.
Elega Research and Development (R&D)
When I write these update blog posts, my favorite part is always talking about Elega research because that is usually where the new ideas or exciting new developments come from! In the past couple months, attention has been turned to running simulation experiments in C++ and the Rust programming language.
Rust, born of Mozilla, and its garbage collected cousin, Go, born of Google - both took the interwebs by storm a small number of years ago when the languages came out around the same time in their relative infancy.
Go never seemed particularly compelling to me. Setting my personal feelings for Google aside (which are negative but that is for another post somewhere else), Go has always struck me as not quite going far enough in any direction it chose to go. Because it is garbage collected, it feels like a strange choice to go with just to get a speed improvement relative to languages like Python or C#.
On the other hand, with Rust: Rust is about having maximum memory safety with zero compromises. It goes head to head with C and C++ on performance while sticking true to its ideals: the pursuit of better quality software by having fewer bugs and thorough automated safety. I am certainly no Rust expert and you are free to read about the language many other places better than here: but my overall conclusion from tinkering with it is immensely positive.
The language has a steep learning curve but I have begun to get the hang of the very basics over a couple days. The compiler certainly catches and complains about lots of little things as you work, which is good, and provides clear error messages. In many cases, the error messages even appear to catch your intentions and advise you on how to meet your goal.
For 4 straight years, Rust has gotten the most loved programming language from the Stack Overflow developer survey. And I can see why. Working with it is kind of a joy, although it is unclear at this time if it would work for a large project in my particular case.
There is an intention within Elega Corporation to at least tinker around with the idea that is currently called: Aperture, a 2D game engine written in a compiled language. There is a question on the table right now as to whether that language should be C++ or Rust. There are certainly cases to be made for both: C++ has a long history of being proven, with endless community support and answers a search away (albeit with varying degrees of quality answers), while Rust has the benefit of providing extra reassurance against memory leaks.
The two are both capable of similar performance on a CPU but I have yet to figure out if they are comparable when working with say, GPU calculations, or asynchronous processing. It is unclear how critical either of these would be in the case of building a 2D game engine.
For now, I will continue experimenting in whatever spare time I could be said to have. There will probably be a direction picked based off of how it feels to work with.
Regardless of Rust's capability for a game engine in my personal case, though, it has proven compelling enough that it is worthy of replacing Python and C# in general. It outperforms them both while being pretty easy to work with overall in exchange for the benefits it provides. You may not know: this website is technically a Python web application, and it at some point may transition to become a Rust one.
So there we have it: Elega Corporation is super busy and we have arrived at Q4 2019 with a new course on Pluralsight, the first videogame we have ever released, and we have more major projects already in the pipeline. There is absolutely no shortage of things to do!
By building on our steadily expanding back catalogue of products, 2020 is set to be the biggest year for the company yet. Enough writing! Back to work I go!