playbyplay

And we’re back.

Server is back online. 2012 is off, more soon.

Still frames, no more.

Back towards the end of august, the project I had been diligently working on came to a rather abrupt end. I’m not even going to mention the name of the group I was working with, nor am I going to go into extreme detail about what happened. I will say however that it saddened me greatly that we were unable to come to an agreement about how a team should be handled, from a voluntary basis, and that we didn’t see eye to eye on levels of professionalism, organization, and planning. Which is really what ultimately brought about the end of the partnership. I was rather sad to see the entire thing come tumbling down, and I wish the best to those who make up that team in any future endeavors.

Since that time, I’ve been going through some personal transitions as well in regards to employment. I’ve found myself working a job that while it doesn’t allow me as much time on a daily basis to work on personal pursuits, overall it should be excellent for time working on personal projects. The sad part however, that I’ve been at a loss for what to work on. I have four projects that I could potentially work on that I have not completed from the past, but I have been lacking any solid passion for any direction on any of them. This has been for a number of reasons I suppose, but really what it comes down to is a lack of direction.

I’ve also been having some financial struggles, an example of that is I currently don’t even have internet, but instead am just writing this on my own server, which is currently off line. I think that this could potentially end up being a blessing in some ways as there are less distractions, but at the same time, the endless sources for knowledge aren’t as easily accessible. Which really just comes down to me making specific notes and then going else where to perform some research online, before returning here to carry out and apply the results of any research.

This is actually the most I’ve written in the last three months, and I’ve got to say it’s good be sitting here doing some actual writing. I did spend a few weeks looking at the world of C.F.L. again, pondering whether or not it was worth advancing on that project. At this time, the one thing that has been keeping me from pressing forward with it has been the overall juvenile perspective that it represents. While I think some of the games original design elements are solid, if I were to redesign the game and make less about sex, that and of it self starts to become a different experience completely. On the other side of things, keeping in mind that the game is supposed to have a lack luster view of things, it could also be used to show consequences of sexism and sexist behavior. I could also just neglect any real impact that the game would have on culture and just chock it up to a stupid game that most wouldn’t probably play and just get back to work on something to have in my credits. Also simply to complete a project for once.

We are at the end of another year. I don’t feel that this year was waste. Instead, I think it was a great example of how not to work with team mates. I think it was a good refresher for me to be back into the world of game development, and with the completion of something like relic in roughly 48 hours, and having had the alpha for the game I was working on with that unnamed team, completed in about 4 months, it was a good boost of confidence and was somewhat reassuring. Looking forward, it is definitely time to get moving on things again, I’m still feeling a little at a loss as where to start.

Communicating Narrative Through Game Mechanics

Yeah, that’s right, I’m still on this meaningful game play kick.
This is a short post however, I just wanted to share this video from Extra Credits – If you don’t know what that is follow this video to the escapist and check it out. This short video does a very good job of giving an example of using game mechanics to communicate an idea. Check it out.

Apple Butter – our well made preserves from the jam.


From August 12 to August 14th a group of game developers got together on the 12th floor of the Liberty Building in down town Des Moines at the offices of Bit Method. Together, we took a stab at creating some game prototypes that were focused on creating meaningful gameplay. What is meaningful gameplay,
this is a subject that has been debated and with most things it really just comes down to how we choose to define it. Meaningful here is game mechanics that are used to express an idea that is central to theme or narrative that the designer/developer is attempting to communicate.

The jam was a great time. There were five games to come out of the event, and rather then do a complete write up for each, I will instead point you over to meaningfulgameplay.com where there is dedicated postings to each project. Some information, including links to download each proto-type is not yet available, some are up already, but the remaining ones should be up within the next few days.

Here is a general recap of the weekend from my perspective.

Thursday, August 11 2011
Thursday night I was attempting to get everything ready for the weekend. I had packed most things I was going to need and had worked on setting up the dev environment I was going to be using for the jam. I had volunteered to give Paul, a fellow jammer, a ride the next morning, but having to work the day before the jam, I could only give him a ride in the morning. So, we both had to get up pretty early the next day. I was excited, but managed to fall a sleep around 12am.

Friday, August 12 2011
Fired and pumped, I was up at 4:30 to pack up the car and head to Ames where I would pick up Paul. By 5:30 I had the car packed up and with breakfast sandwich in hand, was ready to go. Or at least I thought, until I attempted to start the car and had the engine seize up. It wouldn’t do anything. So.., I hit the phone and the internet, letting people know the situation. I checked out the car too, one of my fears that I had when buying the car had come true. The intake manifold had cracked and the engine block was now full of oil and coolant. Not a good combination if you want to go anywhere. An hour later I finally ate my sandwich.

I got a ride into work and made a plea out over the nets for someone to get Paul who was still waiting in Ames. Luckily Franco from GBGames was able to swing up and get him. At work, I was doing my job and also dealing with getting my car towed and into the shop. It was going to be a pricey fix and the car wouldn’t be available for sometime. In addition to having to get a ride into work, I also had to abandon about 75% of my jam supplies. This would prove to be a small inconvenience in and of itself. (Murphy’s law was kicking my ass so far.)

I got a ride from a co-worker from West Des Moines to downtown where the jam was being held. I had to leave work early to get the ride, but I had almost made it. I forgot to get the directions off of the internet before I left work and had forgotten the exact address, so I walked around until I located a WiFi signal and after getting on the net, got the address and walked the few blocks over to the Liberty Building.

It was about 2:30 and when I walked in Josh and Paul were speaking with Ryan via google hangout. They were pretty engaged in conversation so I went a head and started setting my laptop up. I still had to get a stripped down version of the engine setup for a new project and so I began a continuation of struggles I was having that day. Struggles because the laptop was running like pure molasses. I would continue to struggle with the laptop for about 12 hours. Eventually it would be made apparent that the hard drive was about ready to take a dive.

Other people started showing up a few hours later. I believe Beige,one new to our group showed up next. Then Nick at which point four of us went to go get pizza. We trucked around the city for a bit, ducked into a pizza place that was quite full and then ended up at a Domino’s when the wait was too long. We did some basic introductions and discussed some general game development things while we waited for our pies. We then headed back to bit method to consume our fuel.

The Dusty and Ryan showed up briefly after that with Franco coming in not long after. I think it was around 8 or so when we officially got things going. Josh did a brief talk about meaningful game play and spoke about some points that Jon Blow discussed at a gdc panel. As well as watched Alec Holowka’s talk on holistic design. Then we were off to the races.

I didn’t really have a plan of action going into the jam. There had been some general ideas that I had been having, and as I talked with a few people the idea began to take clearer form, in the sense of becoming clear what I really wanted to communicate. The meaning that I was striving for the game to communicate.

An aside on Impermanence – or – How the analysis and presentation should have went.
(Had I had time to work on the analysis these are some of the things I would have spoken about.)

When looking at ideas for what to explore at this jam. I kept coming back to things like commitment, drive, tenacity. As I thought more on it, I began asking myself what do these things have in common? To me the big thing is that they are all components to achieve something, specifically for me, these things relate to my goals as a game developer of being able to operate my own studio. But why are these things important and why is there such an urgency from these things? The answer, impermanence. Impermanence could be looked at simply as change. We are all impermanent, we will live for any undermentioned amount of time, and we will die, at least at this point, all of us. Now what death is and what actually happens there is another topic entirely. But what can be said is that for any of us, dealing with impermanence is something that we must all endure.
In my life, I’ve recently had some people pass away that were seemingly young, in good health, and then bam, they were gone. That can happen to any of us, and while we shouldn’t waste time waiting for death to come, we should let death serve us as a reminder to make the best of our daily lives and help us have a sense of urgency in accomplishing the things that we set out to do. It should also serve to allow us to enjoy the now and to be present in the company of others and to really share who we are with one another.
Impermanence doesn’t exist as only death, but death is an extreme that can not be ignored.

Framing our theme into an actual game

Nick Silhacek and I brainstormed for about an hour to an hour and a half about how to best convey impermanence. We had the assistance of Keith Riddle, and another guy who’s name escapes me at this point in time, during our brainstorming and we definitely came up with enough ideas for multiple proto-types which was one of the objectives of the jam.

After our brainstorming session, I had to let a guy named Roger into the building who had been waiting for fifteen minutes.(We were in the heat of brainstorming and even though I heard my phone blowing up, it didn’t register what it was.) Sorry about that one Roger. We then headed to a gas station for a late night snack and some energy drinks.

I spent the remainder of the night attempting to get my laptop to work enough that I could actually do anything, but I couldn’t even type out a line of code in visual studio without the whole system hiccuping and it would take 30 seconds for it to even display the key presses. Not the best situation to be in at a game jam. I did manage to show nick the script that I use in photoshop for exporting sprite sheets and even though his first time creating graphics for a game, he met every requirement I gave him for the asset pipeline and did a pretty good job getting things moving for art resources. Eventually people started going to sleep. I was on a third wind by the time 3am came around and I ended up staying up and watching hot tub time machine because I was too tightly wound. I ended up passing out at 4:30. Thus ended the first day of the jam.

Saturday, August 13 2011
I woke up Saturday at about 8am. Franco appeared to be the first one up. I continued to attempt to get Visual Studio to be responsive on the laptop and eventually I had it so it was some what more responsive. I ended up calling the mechanic and found out my car was done. I called my dad who took me to get the car and I then proceeded to go get my server/workstation from the apartment.

I think it was around 1:30pm on Saturday, I was sitting down and actually starting to hammer out some code. We had a high level concept that we were working towards that was focused around :

Having Impermanence drive the gameplay. – Having the thought of impermanence be the motivation for the player was at the heart of the design. In order to do this, we decided that we would have a time limit for the player to search for an item. If they did not find the item within that time limit they would have the game world reset, and they would have to start the search over again. This would require systems that did some random placement of items, the player character, the item they were searching for and some obstacles.

I took kind of a hap hazardous approach to coding. I did a lot of the interfaces for the levels and stuff first and once I had the flow of the code setup I went back in and added the functionality. That actually ended up working pretty well and made coding pretty rapid. A flaw to that approach though is that you quickly have multiple classes and stuff to manage so the code can potentially get overwhelming. That didn’t end up being the case here, instead, sleep deprivation was my worst enemy, causing me to end up eventually getting burned out around 1am or so. I stayed up a while longer, I watched some tv show on netflix as a break and then inspired by the work of others, I pushed myself to code a little more. 3am came around and I was ready for sleep.

Sunday, August 14 2011

Sunday, I was the first one up, I think I was also one of the first to fall a sleep. I was up at 8:30, made some coffee, had a sandwich and got to work. Within an hour or two I was putting things up on the screen and attempting to fix bugs and write new code for additional functionality. This was a good test for my use of my game engine. I’ve only used it to make Barricade at this point, and that game doesn’t use half of the functionality that I have exposed through the engine. So, this allowed me to experiment with some code that I had written months before.

Nick finished the hero sprite and on Sunday he began working on the relic sprite. We worked as best we could but with only five or so hours before the presentation time started there was limited time for what we could do.

By the time presentation time rolled around we still didn’t have:

A pattern for obstacles to be placed – They were being randomly placed in the game world, but with
no discernible patterns that would truly make them useful as obstacles.

Collision for obstacles – I simply hadn’t coded it yet.

Drawing for Wraiths – We had an enemy character that slowed our player down. There was an issue that I was trying to solve (I had forgotten to initialize memory for their animations) when presentations started.

A world map. – The world is big and should probably have a map for the player to refer to so they know where they are and where they have been in regards to the world.

Behavior for Wraiths – there was no logic to define how the wraiths should behave.

A timer – This timer was central to the core gameplay.

Those items would have constituted our working proto-type and if I find myself with some time this week, I will be completing those items.

The presentations for the rest of the projects went very well. I was so tired and somewhat disappointed with progress from the tech trouble of the laptop that when it was our turn to present, I think I did pretty bad. You can gauge that for yourself in the presentation video however.


Streaming by Ustream

We Be Jamming Mon!

This jam is focused on meaningful gameplay. You can find out more info on the discussions that have led up to this here Discussion over at Josh Larson’s Site

Come join us. It should be an awesome time!

The Circle of Life

It’s an interesting idea when one thinks about shifts in paradigm. In the words of Darth Vader to Obi Wan, right before he made a force-cicle out of him, “The circle is now complete. When I left you I was but the learner. Now I am the master.”

I’ve recently been re-reading Hackers: Heros of the Computer Revolution , which if you haven’t read and you’re a computer enthusiast or game lover, then I would suggest reading it. It’s a great history of computing in general.

I’ve been working on Barricade again for a solid month now and have been making excellent progress on the game. I would post some updated screen shots, but we are waiting until we get a little more polish to start posting any videos or screens. As I’ve been making progress on the game and re-reading this book, I’ve been beginning to think a lot about how things have progressed from the 1970s to where we are now, and how the market and business of game development and computing continues to evolve.

Apple computers was the beginning of the personal computer revolution. Some may say it was the Altair, or maybe a few of the other hobby kits that were available back then, but the apple was the first thing that resembled what we still use to this day. This is common knowledge. What may not be common knowledge however is the ideals that sprang forth the birth of that computer outta Woz’s head like a titan giving birth to a god. It wasn’t initially inspired by business, but more of a love of computing in general, a love of exploration and creativity. A concept that many apple users carried with them for a long time, this helped to inspire the creation of many other businesses, clubs, ect..

One such business that was inspired by the apple computer was Electronic Arts. I for one, before reading the book the first time many years ago, had no idea that EA was founded as a safe haven for programmers and to help those coders in the early 80′s who were starting to get less royalties from publishers such as Sierra Online and other companies that had made their fortunes in the early eighties.

Here is one of my points, the paradigm shifts. Today , at least as far as I know as an observer, companies like EA are no longer promoting the creativity, innovation, and ideals that they were founded upon. The ideals of giving people creative freedom and helping the individuals who were driving the business back then has taken a back seat to pumping out products in a line of IPs that just don’t die. I don’t know personally, but have read that creative freedom is extremely lacking and these companies that thrived on letting people have expression and ownership in the games they were developing have now become no more then software machines churning out cookie cutter games with little to no passion. There are exceptions here as there are some good quality games coming out of places like EA, Dead Space being one for example, but this seems to be the exception, not the rule.

The same can be said for Apple. The company founded on a machine that was designed for ease of access and sharing and creativity has become another bureaucracy. Previously filing lawsuits over people wanting to modify their Iphones and completely trying to circumvent people doing so. Also, limiting the transfer of files to and from devices through a proprietary p.o.s. program that is a pain to use is a complete 180 of what Apple once was. It’s a sad state of affairs to see all these companies turn to the dark side when they had such grand promise and ideals in their founding.

We are currently in the midst of another era that is quite similar to the early 80s where many indie developers are going to be making bank, enough to startup their own companies and such. I am writing this in the hopes to be a beacon, a reminder that for those that do see success, try to think ahead enough to protect what it is that you are doing, in the future. Business is business, but even if a company is started, does well, and then is turned over to suits in the end, there are still safe guards that can be put into place to make sure a companies visionary roots are not tainted.

Ultimately, I know things can grow so big that the vision can get trampled, but if that is the case, maybe the answer is to simply keep things small and focus on making games that you are passionate about? It will be interesting to see how things continue to change and develop, who knows, maybe the big boys will get back to their roots someday?

The Drudge of the Deadly Tool Delay

Before I stepped away from Game Development in Late 2008 and started concentrating on web development, I had been working on a custom game engine and and set of tools for about two years. At that point in time I was beginning to get a bit burned out on writing things that I wasn’t even getting to use. Simply put I was building things that would be helpful eventually, but they were simply sitting as I built more and more functionality.

Fast forward to almost two years exactly and I started back where I left off. I was making some good progress, but I was starting to notice the same trend as before. I was making tools, not games. If you read through my previous posts you may notice I discuss this a little bit, and it is something that I’ve struggled with. I work a full time job in addition to being a father and as I continued to move forward on the tools, things seemed to be moving rather slowly. The tools were meant to be a means to an end, game development, but they were proving to be more of an end in and of itself. Towards the end of March, I made a decision, I was tired of working on tools, I wanted to make games.

My game engine had been in a usable state for a while and after much debating about whether to use something like Unity, I decided to press forward with using my engine. I had spent years developing it, and with it streamlined for 2D already.

To all the guys out there that have said develop games, not tools, I have this to say :
Follow what it is you want to do. I set off on developing an engine because I wanted to learn the ins and outs of game programming. This was useful to a certain point. But at a certain point, you do have to get back to what it is you are really trying to do, which is making games. There are plenty of available tools out there for people who are wanting to start out in game development, so if games are what you ultimately want to do, it’s a good idea to go a head and use what’s available. If there is something specific that you want to do and a tool isn’t already available, why not make it.
No one can tell you the approach that is going to end up working for you. They can only give you an idea of how it may go based upon experiences that they had or that other people have had. The most important thing is to try, experiment, and then come to your own conclusions about which path is right for you. Failure is only present when you either give up, or never even try.

I wrote a few functions that helped stream line the engine that maybe helpful to others, namely :
Pixel_2WorldSpace(float arg) which is a function that simply converts pixel space into opengl coordinates automatically so that object scaling, translation, and rotation can all be done with pixel dimensions. This is ideal for 2D.
I also wrote a couple of functions for automatically mapping uv coords, and they accompany the Animation Export Script for photoshop. They read in the sprite sheets based upon the size of the frame cells. Using these functions , one for static images, and one for animations, accompanied with a SetDimensions function, we can create an accurate in game representation of a game object with a few lines of code. This has sped up the engine itself and sped up getting things up and on the screen in a completely accurate fashion.

 
/*/////////////////////////////////////////////////////////////////////*/
 
bool Sprite::Anim_Map_UV(int first_frame_row, int first_frame_col,float f_width, float f_height, int numFrames, int AnimationNum)
{
	//calculate the initial uv positions 
 
	float initial_x = f_width/Texture.width;
	float initial_y = f_height/Texture.height;
 
	//How many cells rows and columns in our texture have.
	int frames_per_row = Texture.width/f_width;
	int num_of_cols = Texture.height/f_height;
 
	//Bounds Checks
	if(first_frame_row<1)
	{
		first_frame_row=1;
	}
 
	if(first_frame_col<1)
	{
		first_frame_col=1;
	}
 
	else if(first_frame_col>num_of_cols)
	{
		first_frame_col=num_of_cols;
	}
 
	//Make sure the animation exist in memory
	if(AnimationNum > GetNumOfAnimations() || AnimationNum < 0)
	{
		MessageBox(NULL," The animation you are attempting to map is not valid.",
			"Sprite::MapUV() Error!", MB_OK|MB_ICONERROR);
		return false;
	}
 
	int count = 0;
 
	//create our multipliers
	int x_m = first_frame_col;
	int y_m = first_frame_row;
 
 
	do
	{
 
 
 
		(Animations+AnimationNum)->SetFrameTexCoord(count,
		(initial_x)*(x_m-1),initial_x*x_m,initial_y*(y_m-1),initial_y*y_m);
 
 
		//If we've reached the end of the row, move down to next row, first col
		if(x_m == frames_per_row)
		{
			y_m++;
			x_m=1;
		}
		else
		{
			x_m++;
		}
 
 
 
			count++;
	}
	while(count < numframes );
 
 
 
 
	return true;
}
 
///////////////////////////////////////////////////////////////////////////////////
 
bool Sprite::Static_Map_UV(int frame_row, int frame_col,float f_width,float f_height)
{
 
	//calculate the initial uv positions 
 
	float initial_x = f_width/Texture.width;
	float initial_y = f_height/Texture.height;
 
	//How many cells rows and columns in our texture have.
	int frames_per_row = Texture.width/f_width;
	int num_of_cols = Texture.height/f_height;
 
	if(frame_row<1)
	{
		frame_row=1;
	}
	if(frame_col<1)
	{
		frame_col=1;
	}
 
	else if(frame_col>frames_per_row)
	{
		frame_col=frames_per_row;
	}
 
 
	//create our multipliers
	int x_m = frame_col;
	int y_m = frame_row;
 
 
 
	if(!SetTexCoords((initial_x)*(x_m-1),initial_y*(y_m-1),initial_x*x_m,initial_y*y_m))
	{
		MessageBox(NULL,"The texture Coordinates could not be set.",
			"SPRITE::Static_Map_UV Error",MB_OK|MB_ICONERROR);
		return false;
	}
 
 
	return true;
 
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
float Pixel_2WorldSpace(float arg)
{
	float par = ((float)TrogWin.GetHeight())/((float)TrogWin.GetWidth());
 
	par=par/100;
 
	return (arg*par);
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
void Sprite::SetDimensions(float x1,float x2,float y1,float y3)
{
	x1= Pixel_2WorldSpace(x1);
	x2= Pixel_2WorldSpace(x2);
	y1= Pixel_2WorldSpace(y1);
	y3= Pixel_2WorldSpace(y3);
	SetVerticesScales(-x1,-y1,x2,y3,0.0f);
 
}

Those functions have been extremely helpful and hopefully will be helpful to someone else out there. Of course there are some specific functions for the engine that these functions use, but they should be somewhat self-explanatory.

Coiling Up for the Rest of Winter : Part 1


Spring is almost here. There are a lot of birthdays in my family in the month of March, so it’s always a busy time. Spring is in the air, and with it themes of renewal and rebirth. When I first started coding what would later become the base for the rendering components of the Troglodyte Game Engine, it was first called Phoenix. Phoenix was fitting and is fitting for any type of software development as it is a process full of re-iteration and rebirth, but Phoenix is an all too common name and that was one of the decisions in the eventual renaming of the engine.

So, at this point of the engines development, I am going to visit Scripting With Python. I am going to write a series of entries covering the interface development and host API for the engine over the next few weeks. This should help keep me on track and hopefully may provide some helpful hints to anyone looking to dive into the subject matter. If not, it at least keeps me on the cutting edge of typing ;P.

Embedding Python – Squeezing snakes in tight places.

Python allows for two ways of communicating with C/C++. You can have your python application call c functions, this is referred to as extending python, or you can have your C++ app call python functions and have the execute logic on C++ Objects. That is what Troglodyte is designed to do, and what I will be working on over the next few weeks. The process, as I will explain in more detail, can be quite involved. You basically have to change data types between C++ and Python, and for functionality that is somewhat complicated, this may have to happen multiple times for one call. So there is some over head involved in this process. In the end however, it will allow for the python interpreter to update data in real time and will ultimately eliminate the need to recompile the engine every time we change data for a sprite or in game object. It is also my goal to have a modular approach for the functionality of the in engine editor, having the editor being scriptable and allowing functionality to be added and updated at run time.

So, what types of things should be exposed to python? The short answer, things that are dynamic and need updating. This current pass of scripting interfaces is being somewhat streamlined with just the high end objects being scriptable. At the highest level of in game objects is our Sprite Class. Not only does our sprite class need to be exposed to python, it needs to be expandable through python. Meaning that we should be able to specify functionality that isn’t inherently part of the Sprite class but that a specific instance can execute depending upon the desired action called by the script.

Now For SSSSomething Completely Different

The Sprite class in all of it’s glory is the highest non-game specific class in the engine. It goes through various levels of inheritance starting with the ABT TObject. The Sprite class makes use of texture, audio, spacial translation, animation, and object serialization features. This makes it an ideal point to concentrate on for beginning the scripting process.

When you setup a call to python in C++ every single piece of data that is sent to and received from python must be a PyObject * . In order to make use of the data in C++ from python it has to be converted into the desired data type.

To Be Continued

Arise From Your Grave

I’ve had a laxed period the last week or so, mainly due to some sickness that I experienced. But at any rate, I haven’t had a lot of focus for a little over a week. Down time can be good, but it wasn’t exactly planned. Considering that I am in the midst of finishing up some vital areas of the game engine, it can be debilitating being away from the project, in that it even though design work is done, putting things into practice doesn’t always go smoothly and as you code, redesigning things is a necessity. If you’re in the middle of implementation of a system and small redesigns on other parts, it can be very confusing to get away from it. It can also feel overwhelming when you do get back to it.
In the past, I’ve set specific goals for adding content to my website. It was meant to keep me motivated, to keep things moving forward, and eventually, I was hopping someday that it was going to generate add revenue at some point. When I was initially setting up my server back in 2008, I did pretty well at following a content generation plan for like the first two months. I was doing book reviews and writing code snippets and things. None of the content ended up on the site and most of it sits back in the server archives and probably will never see the light of day.
On the revenue generation front, that was a failed venture. On the pacing and keeping my interest levels peeked, it did it’s job at that time.
In that sense, I am going to set a goal to post content to the site, a minimum of once a week. It needs to be relative content to game development of some kind, ideally what I am up to.
Ideally, posts with good content, and possibly something that can be broken up into a series throughout the week. In the past, my gamedev.net journal, and my si.r.o.a.d journal over on blogger were great sources to help keep my thoughts structured and gave me a pulpit to interact with other game developers and such. What I found with those accounts however, was that it really didn’t help me with exposure as much as I would have liked. Posting to multiple locations could be helpful by allowing multiple audiences access to the content, and this seems like a good idea. However, now a days, with social media being the norm, you can reach more generic audiences with a simple link and have your content all in one place. This actually allows for easier data management and also gives me control over seeing who is viewing my content and possibly opens up a forum to a potential audience. I will be leaving all previous accounts I setup over the course of the first 10 years of the century, but I will not be updating those accounts any longer.
My soul effort with communicating to the nets will be done directly through my website. I’m hoping that this will allow for less time spent sharing the same ideas and more time spent on game development and the potential discussions spurred by those ideas.

In that vain, I’m going to need to polish the site up a little more. I need to get graphics to replace the navigation links at the top of the site and possibly divide my posts up into more categories. Originally the website was going to be geared towards a community based around the games I developed as well as Troglodyte. This plan has changed at this point and I’m looking more to simply have an interface for me with the rest of the world. This makes more sense as I was spending a lot of time previously developing resources for a community that didn’t even exist.
If a community evolves and request for member features are made, it makes more sense to develop them once their is a demand for them.

Animation Export Update

Ok, so if you read my previous post, I had stated that I never got the original .psd for Retro Affects exporter to work for me. Well, I managed to track down why. It was my code. I had an incorrect logic check in there where if the sprite sheet had a certain number of animations it wasn’t going to the next row and was drawing the image out of the viewable area.

I also found that there was an issue where if the number of rows exceeded four, then they weren’t updating correctly. I fixed this in the new version which you can get Here Animation Exporter 1.5 I apologize to anyone that may have experienced troubles.

Here’s a list of features to the update.

V1.5 by Will Canada
Adjusted logic error that was causing frames to, under certain conditions, be drawn outside of the sprite sheet.
In the previous version the script placed the last layer as the first frame, this was counter-intuitive to photoshop, script
now places first layer as first frame.
Fixed Issue where the number of rows wasn’t properly scaling beyond a certain threshold.
Corrected spelling error in a user prompt.

Return top

Inspiration



CribZero gamedev.net

God at Play Infinite Blank      

Intuition Games MikenGreg Games      

OpenAL OpenGL      

RetroAffect Ted Martens

Python Tyler Owen      

Will Perone The Independent Gaming Source

 
playbyplay