Really wish I could figure out why my brain goes from being super productive to having no motivation at all UGH (4 days ago)
2014 - 12 - 21 / 7:49 am / otter
Over the past week or so I've been doing some various changes to Otter as I'm still trying to figure out the best way to add Entities to Scenes, and Components to Entities. Currently in the dev branch an Entity's Added function is not called until the Entity is actually added to the scene at the beginning of the next update, and now for Components their Added function is not called until it is actually added to the Entity which can occur at the start of each update.
For now I just did some minor updates and changes
* Changed how Entity.IsInScene works. Now IsInScene will return true if the Entity is in a scene, or queued up to be added to a scene.
* Added SetColor to the Color class. This is useful for changing all of the values on a color especially when using another color as the source values. Mostly used in cases where you don't want to Copy and create a new Color instance.
* Finally figured out how to get colliders to have separate constructors when using Enums as tags. Now you should be able to specify Enums as tags in the constructors of all colliders.
2014 - 12 - 16 / 9:57 am / general
Work continues a little bit on a board game prototype with some local Phoenix developer friends. Dave ended up making some amazing tokens for us to prototype with which makes the game feel a billion times more fun. Every week we have a play test and it seems like we're narrowing in on something that's actually a playable game.
We've been using Google Sheets and nanDECK to prototype and print out our cards, and then sticking them into sleeves along with Magic cards to play with. I think having a total break from making games with code and complex art assets has been pretty fun -- it's a totally different experience than making a video game, and getting better at board/tabletop game design is something I really want to work towards.
I'll get back to my main project soon I promise! (but now holiday travel season is upon us and that puts a giant wrench in everything too.)
2014 - 12 - 11 / 11:19 pm / general
I feel like days are just flying by lately. What have I even been up to?! The past week or so has probably been a record low in the motivation department, and I have no good idea why that is. I guess it just happens. Sometimes I just end up feeling totally lost as to what I should do, or what I should be working on.
I'm working a little bit on a board game idea that some local Phoenix developer friends came up with, and I'm poking around at finishing my two player coop action game, but overall my amount-of-work-getting-done value has dropped off a lot, and the crazy thing is just a week or so ago it felt like it was at an all time high! I've been doing creative stuff and making games and whatever else for years now and I still don't understand how it all works.
Sometimes it just seems like every other developer or creative person on the planet has everything figured out and I'm the only one that totally drops off the face of the earth for weeks. (I know that's pretty hyperbolic, but I'm not claiming to be rational here.) When I get programming demotivated I start to draw more, and you'd figure I'd draw art for my games, but the problem is that for some reason that stresses me out, and so I just start to doodle what makes me comfortable instead.
I'm going to try just fiddling around with Otter to see if I can get a spark going again for programming. I think some of this feeling might have to do with upcoming travel which always stresses me out beyond belief. I wish I didn't freak out so much whenever I have upcoming travel, but I'm not really sure how to fix it!
Oh well, game development isn't all sunshine and puppy dogs and rainbows or whatever. Sometimes it sucks, and it's really depressing! But maybe it will clear up again soon.
On the upside I've been watching Handmade Hero and so far it's been pretty awesome. It's going to be a complete series on making a game from scratch. It's opening my eyes to a lot of stuff that I thought was just dark magic, and there are a lot of great programming and development tips scattered throughout all of the videos.
2014 - 12 - 3 / 1:10 pm / general
I may have figured out a Photoshop animation workflow that actually makes sense after all these years. I've been trying to use the frame based animation timeline, but it turns out the video timeline makes way more sense.
Using "Video Groups" is almost how I wished Photoshop animations would work. To create a video group you can click on the little film strip icon with a down arrow on it that's next to "Layer 1" in the video timeline. I have no idea why this option is only located here and nowhere else that I can see.
Each layer in a video group is another frame of the animation (if you make each layer's duration only 1 frame long.) The video timeline then only shows each group and not every individual layer. Also you can totally use onion skinning with a video group which is already a billion times better than using the frame based animation timeline.
I'll have a more detailed post going over this workflow once I get a little bit more used to it, but for the initial tests seem really promising.
2014 - 11 - 24 / 8:28 pm / general
I've been doing pretty bad on blog posts this month so far, but I've been getting a lot of cool stuff done lately. I've been mostly focusing on my game jam game from a few weeks ago. I want to get that into a good playable state and do some testing at a local indie gathering and hopefully push it out to the public after that. This is another game that I'm making using my 2d .net framework Otter.
During the game jam I started to use the idea of components a lot more. The entity component system is the new hotness in video game programming as it seems many developers are starting to favor it over the old school hierarchy tree of classes. Here's a pretty good write up explaining how it works.
So far all of my games depend very heavily on the whole class hierarchy tree. Like I would have a base Entity, and then maybe a game specific Actor which extends Entity. Then I would have a MovingObject which extends Actor, and then a PlatformerObject which extends MovingObject. Finally the player would be a class (like the momma from Offspring Fling) that extends PlatformerObject. It seemed like a good idea at the time!
Now with this jam game I'm working on I'm trying to use components as much as possible. It may be a little overkill, but I'm using this as a learning opportunity.
For example here's what the Heart component looks like. I use the Heart for everything that can be involved in combat in some way, like anything that can take damage and all that stuff.
There's also something as simple as the RenderAllColliders component, which is handy for just slapping into an Entity if I want to see all of it's colliders during runtime. It will only render colliders on its parent Entity if the game is running in debug mode which is pretty neat.
So what does an Entity look like with all this component stuff? Here's a quick snippet from my main player class:
// Add the movement and pass the axis from the controller.
var movement = new MovementTopdown(7, 0.3f);
movement.AxisMovement = c.Movement;
// Add the weapon, and pass it the shoot button from the controller.
var weapon = AddComponent(new AngelWeapon());
weapon.Button = c.Shoot;
var special = AddComponent(new Components.SpecialAttacks.Shotgun());
special.Button = c.Special;
AddComponent(new PushAway(2, Tag.Angel, Tag.Orb));
Later if I need to I can use GetComponent to retrieve any of those components if I need to change anything on them.
So far I'm really liking this approach, and it seems like it's the way things are heading in the video game programming world as far as I can see. I'm a little concerned with the performance of using a lot of components with GetComponent() running all the time, but it's probably not going to have that much of an effect.
2014 - 11 - 19 / 11:29 am / otter
Some crazy updates happening in the dev branch of Otter recently! Here's the scoop on what's been going on:
* Changed how Entities are Added to the Scenes. The Entity's Added() method now fires when the Entity is actually added to the Scene at the end of the current frame. The Added method also fires after all Entities in the adding queue have been added.
This means that if you're adding a player object, and then an enemy object afterwards, and the player object needs to reference the enemy object in its Added() method it should be possible to do so.
* In a similar fashion the Components have been changed in regards of when their Added() method is called. Components in the add queue are added at the beginning of Added, UpdateFirst, Update, and UpdateLast, and their Added method will fire when they are actually added to the Entity from the queue.
* GetComponent can now return Components that are still in the adding queue if none are found on the Entity itself.
* GetComponents() returns a list of Components of a certain type.
* Axis now has access to Up Down Left Right buttons. Very handy for having to check for button presses on an Axis and not having to create 4 separate buttons to do so.
* Repeat has been changed to two bools RepeatX and RepeatY.
* Util.Log() now behaves like a format string call (similar to Console.WriteLine())
* BitmapFont support is coming along and now supports data for three different bitmap font generators, as well as support for standard monospaced fonts.
* RichText characters can now be accessed and manipulated individually. This means you can do stuff like animate properties of characters yourself instead of relying on the mark up in strings.
* Other minor clean up and fixes that should make stuff better overall.
In other Otter updates be sure to follow the journey of Otter Pup 681!
Hi there, my name is Kyle, and I'm a kid disguised as a grown up. I'm making video games and living the indie game developer life in Tempe, Arizona. Here you will find my thoughts, games, websites, doodles, and other stuff like that. I worked on Snapshot, Offspring Fling, and a whole bunch of other games. I also created and maintain Otter, a 2d game making framework. If you want to get a hold of me use the form on the bottom of the page, leave a comment, or just tweet at me. I try to post three times a week. Thanks for stoppin' by! You're the coolest.
- alec holowka
- bill pullman
- dev log
- game jam
- good times
- kings men
- ninja slash
- offspring fling
- screen sat
- space sushi
- december 2014 (10)
- november 2014 (13)
- october 2014 (14)
- september 2014 (14)
- august 2014 (11)
- july 2014 (10)
- june 2014 (13)
- may 2014 (13)
- april 2014 (13)
- march 2014 (14)
- february 2014 (15)
- january 2014 (15)
- december 2013 (14)
- november 2013 (15)
- october 2013 (13)
- september 2013 (14)
- august 2013 (15)
- july 2013 (10)
- june 2013 (14)
- may 2013 (14)
- april 2013 (15)
- march 2013 (13)
- february 2013 (15)
- january 2013 (3)
- december 2012 (1)
- november 2012 (2)
- october 2012 (1)
- september 2012 (4)
- august 2012 (1)
- july 2012 (1)
- may 2012 (1)
- april 2012 (1)
- march 2012 (1)
- february 2012 (1)
- january 2012 (1)
- november 2011 (2)
- september 2011 (1)
- july 2011 (1)
- june 2011 (1)
- may 2011 (1)
- april 2011 (2)
- march 2011 (4)
- february 2011 (4)
Do you want to make a Let's Play of one of my games, or a just a video featuring footage of my games? You have my full permission to do so! Even if you are monetizing your videos, you still have my full permission to use any footage from any of my games. Go for it!