Dev Diary - addtheletters/space GitHub Wiki

It's like a blog, but not even! And way more relevant!

4/11/14

So, I've thought about the entity-component structure a lot. It definitely needs a revamp. We have components that do nothing but check on other components... (Gernerally called Netblabla). The solution, I think, is to change the entity structure. Rather than having these manager units as 'Net' components, entities will store these separately. For now, I will call these 'aspects.' Aspects include mass, gravity, heat, sensors, engines. Components may link into any number of these aspects, and each aspect will store references to all components using them. This is done so we don't have the silly 'scanning through all components' that is currently used in the 'Net' components to calculate their effects. Components will no longer have component requirements, but have Aspect requirements. Components should not be reliant on others. They may link in with others, but will only do so through their Aspects: they will not search for and interface with each other directly.


1/18/14

Recently, quite a bit of thought has been put into exactly what direction this project should take. As of right now, it is still just a framework. Focus will be on polishing structure and getting things implemented until there is something playable. For example, implementing delta-time, something that I should have been doing since the very start. The priority tasks in the readme are, well, priority. Started working on the lore, too. Not sure if I quite like it. Backstory subject to change. For now.


9/17/13

Back to school! Surprisingly, this means I'll probably work on this project MORE... Hmm... Going to work on getting sensors working together with heat, and having it display correctly. Maybe even have a playable shooty-shooty heat-seeking demo soon.


7/23/13

Been real busy lately. Started teaching a small programming class and am acting as a teacher / teacher assistant for a summer technology camp. I'll find time to work on this still though, and the camp ends in another week and a half. This wasn't a short term project anyways! ;P


7/14/13

It's a learning process. I started this project not knowing the slightest about graphics or simulated physics. I'm still learning! I've been fiddling with physics and thought,

Hey. Someone HAS to have done this before. Why don't I just use someone else's code.

I looked around a bit and found JBullet. I'm doing more research into it now but it looks like it might help. Also, I think I'd better start looking into RK4. This article looks like it'll help! http://gafferongames.com/game-physics/integration-basics/ Hopefully collisions will be done soon, fweeee!


7/4/13

Some work has gone into RPG mechanics, though I can't really develop them much without having something actually playable first. So I think the next step is getting data and communications working along with collisions. At any rate, my test text RPG is pretty cool. And creepy. Mostly creepy.


6/29/13

Started work on a few different systems. The RPG mechanics will be interesting to work into it, with all the free reign I plan on giving players. Not everything will be as straightforward as a 'good path' or a 'bad path.' Will you support a certain faction? Will you pretend to and then backstab them? I plan on making it so everyone has their flaws, so you will just have to live with some of them or have a much more challenging journey on your hands. This is gonna be fun.


6/21/13

Summer has come! yaaaaaay! Let's see what we can do :P Project has been stagnant for a week or so as I studied for finals and relaxed following the end of the year, but I'm ready to get back into it now. Where were we? Engines, heat, information systems? Ah yeeeeessssss......


6/7/13

You know how openGL works? No? Well I'm going to talk about it anyways. It uses projection matrixes to determine how to draw stuff. So, for example, createProjectionMatrix(0, WIDTH, 0, HEIGHT, 1, -1) creats a matrix that tells openGL that the left is at coord 0, right is at coord WIDTH, bottom is at coord HEIGHT, top is at coord 0. Or so I thought. Apparently slick2d's text system says differently. It likes to say createProjectionMatrix(0, WIDTH, HEIGHT, 0, 1, -1), which swaps around the top and bottom coordinates for openGL windows. In practice, what this means is that text displays upside down... boy was that fun to fix.


6/6/13

:D I changed the acceleration and gravity systems, and now they work! Before, I was constantly incrementing acceleration or something, so they were accelerating at like acceleration squared... oops. But now the gravity looks right and everything! And there's slingshot manouvers and stuff! And going by the pullers doesn't cause things to gain superspeed and shoot off into the distance! I'm happy! :D


5/31/13

Alright. I put together a progress update video :D This project's come pretty far I'd say! And there's a bunch of stuff written that hasn't been tested graphically yet too. I also did a bit of cleanup on this wiki 'n stuff. A prerequisite component detector thingy system-mabober has been sorta implemented. I suppose I'll have to get back to data systems at some point. Hopefully that'll be working soon. :P Then we can really get the ball rolling with the game mechanics.


5/28/13

I am an idiot, apparently. Didn't tell the EntityBuilder the position of the entity I wanted it to build. Hmm. Gravity still seems a little odd, cause when things approach each other they gain massive amounts of speed... I tried doing some stuff with pull range, but it still does it the same :( I'll probably need to do a bit more research and tweak the calculations.


5/24/13

Gravity systems are complete cough but testing reveals what seems to be... problems.... I really do not know how to fix them but I'm sure I can do it eventually! Or I can have someone else find the bugs for me! Or something! Should be just a few simple fixes. Hopefully. Might be a little more complicated than that. But we'll see. Hmm. Why u keep going in same direction entity?


5/22/13

So, gravity and mass systems are in the works! We'll see about this... how relevant is the universal gravitational constant anyways? Basically... there is a building there. Um. Anyways. I should probably get around to testing all of this stuff. Also, while writing these systems, I realized that I should probably restructure the component system so components can have multiple identifier tags for various roles. Or have someone else do it. ( cough do it collaborators)


5/16/13

After some deliberation, I think I'll scrap the whole mapping thing... if there's some kind of anomaly I might as well just represent it with entities. I think I'll keep the World class stuff though. Tossing around lists of entities was getting hazardous. Back to working on heat now. I feel good about it this time :D


5/14/13

Been thinking about data and heat. The more I think about it, the more I just want a blanket heat representation of the entire game world. Like some kind of map that can give me the heat at any point in the world. Not exactly sure how I should go about this... Heat sensors will be able to read this 'map' and provide data to various systems based on it. This way thermal tracking and stuff will make sense! Also, bloom and flare-outs of sensors will be easier to calculate. Thoughts?


5/9/13

Doubts about structure have kinda passed. If I need to fix it, I'll deal with it after doing the data and communications system. It'll be interesting. Data getters. Accumulators get from the getters. Data can be in all kinds of types... Here's how I think communications will work. There will be a data getter of type "comms listener" or something like that, which will pick up communications data if it is being sent through another entitiy's component of some sort. It should work. In theory. Then again everything works in theory. Cheesecake.


5/1/13

One month in. The doubt begins to set in. Should I reorganize the entire entity/component structure with subcomponents to better accomodate data management? The cold, white walls provide no answer. id: IT'S ALL WRONG! IT'S GONE TO CRAP! KILL IT WITH FIRE BEFORE IT SPREADS! superego: It's fine. Just keep coding, everything will work. ego: I wouldn't just go round burning stuff. Yahknow. But the structure definitely needs updating...

THE VOICES ARE IN MY HEAD MAKE THEM STOP OH WAIT THAT'S JUST THE INTERCOM SORRY

Also: I'm on a boat ‿‿‿‿‿‿‿‿‿'BOAT'‿‿‿‿‿