Anyways, it has come to my attention (By careful observation), that I really should balance out my more game-related videos with my programming related ones. Not to speak of my "Ultimate Beginner's Guide" series, which has been somewhat in-the-downs lately, because of so little attention. Look forward to getting back into my coding/programming stuff.
Speaking of, I have gotten some motivation to start work on a mini-project. Nothing too large, mind you, but something that I can complete by myself in ~1-2 weeks, and maybe upload here for you fellows to play/look into.
Now, onto the "Framework" part of my post. I am currently working somewhat with another programmer to, as I think of it, "intern" for his game. I have only experience with some somewhat official-seeming code styles, and have only focused on "Vanilla", non-library focused programs. His game is using LWJGL and the works, so I can foray into the subject. Might look into it in a deeper scale at some point.
Anyways, back to the original point that I wanted to make, I was asked to turn some code into "Artemis" styled, which is based off of DOD (Data Oriented Design), somewhat similar to OOP (Object Oriented Programming), but based more on the "Primitive/Basic" style. Think of it as instead of having a whole lot of Mobs, each with their own update/render method, accessing an entirely separate class called "Update" and "Render". Now, instead of calling "g.drawimage(...)" in each one, you have a central loop like "updateAllMobs()", which does "For every mob that exists, then Render(class).renderMob(mobx, moby)". This method pretty much has "g.drawImage(mobImage, mobx, moby, null/viewport)". All of the logic/rendering code is handled separately from the entity (Mob) itself. At the least, that is how I envision it in my head. It is all very interesting, and I am thinking about making a video-blog about the entire thing. I will have links posted later to other websites/videos for more in-depth information.
Now that I have the explanation out of the way, I am thinking about experimenting with this. Seems rather interesting, and makes my think about whether or not it would increase performance by any noticeable amount in small-scale projects. Obviously, with something larger (AAA titles, etcetera), it will make a huge difference changing anything, especially core framework. I'll look into it, and probably post it on my next website blog (Read: on this website, here).
Now, this is already a super-length blog post, by any standards. I am also looking into different ways of creating/constructing basic frameworks, and might look into creating my own "engine", if you can call it that. As far as I know for the definition, an "engine" is an engine when it can do almost anything within it's own system. For example, the Frostbite engine (Used for BF3, and some others. I know that it is being adapted for the next Dragon Age game, "Dragon Age: Inquisition"(Nobody ever expects the Inquisition!!), to be more open-world) was developed for the explicit use of FPS/MMOFPS, example: Battlefield 3 (That I know of). Very interesting stuff. Definitely want/need to look into when an "engine" actually becomes and "engine". It's definitely larger than just a game, but more fleshed out than just the framework. It's supposed to be portable, sort of like a specialized library? I am unsure.
Anyways, I think that I will end this blog on this note: I am going to be more focused on programming videos in the coming days/weeks! Rejoice!
Links For Further Reading
http://www.openprocessing.org/sketch/18023 <<< Good example of how DOD and Entity systems can be used in-game. Definitely worth looking at and thinking about how that can fit into your own programming style.
http://gamadu.com/artemis/tutorial.html <<< I almost forgot to add this link, but it goes directly to that "Artemis" framework that I mentioned in the article above. This links to the tutorial page, from which you can visit anywhere else, and what-not. Looks clean!
https://www.youtube.com/watch?v=16ZF9XqkfRY << Link directs to a semi-seminar about the pluses of DOD. Also has a tangent about how the CPU operates compared to RAM, and ways to optimize this sort of behavior. Very informational, and I think that it is a must-watch for anyone that wants to look into this. (I recommend comparing this information to the other sources, and checking against my views of it.). I would also have imbedded this, if the uploader had not blocked any/all imbeds.
I will also be posting a blog later, talking about different engines, and designing games. Hopefully I have enough knowledge at that point to not make a total fool of myself. Look forward to it.