Categories
Game Development Personal Development

Oracle’s Eye Development: The Room

I believe I already mentioned how unproductive it is when I try to design the code to Oracle’s Eye. When I was last working on the project, I was able to move some functionality from one class to another. It basically cleaned up my code and made it easier to work on additional functionality.

Still, it didn’t really seem like a lot of progress. I want to make it possible to load a complete Room. When I started this most recent programming session, I had hardcoded some Tiles and had the Player moving about. They didn’t interact, which was fine. I’ll work on that functionality later.

In the last few weeks, I found that I was spinning my wheels trying to figure out which class should own what objects. At one point, I realized that I don’t have anywhere near the experience required to make the decision about how the game hierarchy should be designed. As much as I didn’t want to do so, I think hacking out a solution would be better than not implementing one at all. Once I have something, I can always fix it or refactor it. Nothing has to be permanent, and I don’t need to worry about destroying my progress so far because Subversion has all of my changes. So, I dove in.

I actually decided to create a GameWorldFactory class. I’m not terribly familiar with design patterns, but I wanted a class that would be responsible for creating objects of different types and make them ready-to-use. Well, to do so I figured that I would need the GameWorldFactory to know about the current Kyra Engine. PlayState currently owns the instance of it in a private pointer called engine_, and I decided that I would just have the GameWorldFactory constructor take the engine pointer as an argument. Maybe later I’ll decide that the GameWorld should own the KrEngine, but for now, I just want to get something accomplished. I don’t know enough at this point in time whether it results in a bad design. I have a feeling it is wrong and that there is a better way, but I can fix it later.

It wasn’t that hard to create the factory. The code to create the Player wasn’t too different from what I already had in PlayState. Since I didn’t really have much in the way of a Room, I had to do a bit more work, but again it was fairly simple to implement.

In the end, I managed to accomplish my goal for the evening and make a Room. GameWorldFactory hardcodes the default 10 x 4 Room, but I also plan to make a createRoom() that takes a file as an argument. Naturally it would be used to load levels of some sort. Perhaps I’ll also make one take a vector as an argument so that levels can be loaded from memory instead of from the hard drive. I’ll deal with that issue when I need to do so.

Here’s a scaled down image of the stick figure Player in a portion of the Room.

In reality, the Player is on top of the Tile sprites, and they currently know nothing about each other. I’ll work on putting the Tiles and Player in the right hierarchy so it is easier to do hit detection. For instance, the game should keep the Player from walking outside of the Room by making sure that the Player can’t walk through Walls.

Now for admitting something: I came home not wanting to work on this project even though I dedicated the evening to doing so. I was really tempted to play a game or watch television. I don’t know if it just seemed overwhelming to start or if it was just that I didn’t anticipate it to be enjoyable. Something was nagging at me not to work on Oracle’s Eye, but I decided not to listen to it.

I told myself that if I could just start and work on it for an hour, I’ll give myself permission to play Empire Earth or do whatever else I may decide to do.

Hours later, I was putting the finishing touches on the hardcoded createRoom() function so that I could get a nice 10 x 4 Room lined with Walls and filled with Floor tiles. It’s almost midnight as I write this post. I love being productive, even if it is weird that I could trick myself into doing it. B-)

Categories
Personal Development

Hearing Pavlina is Weird

I remember when Steve Pavlina started his personal development website, stevepavlina.com, and his picture at the top was kind of jarring. It’s like any online personality, I guess. When you read the words of someone online for any length of time, you might have some vague image in your head of what they look like, but when you see a picture of the person its…well, it’s kind of weird sometimes. I remember people on the indie gamer forums poking fun at how much of a nerd Pavlina is, and some noticed he looked a lot like the famous Jeopardy! champion Ken Jennings. Others just treated it like any of us would. “Cool, so that’s what you look like!”

It’s what I thought when hearing Steve Pavlina’s voice in his first podcast. “So that’s what he actually sounds like!” It’s not the voice I had in my head when I read his blog posts and articles!

Now, I’ll say that this is the first podcast I’ve heard. Ever. I don’t have a portable digital audio player so I would have to be in front of my computer to listen to them. I’ve also heard that most aren’t of good quality anyway. I thought it was kind of jarring how he paused mid-sentence a number of times at the beginning. Perhaps he was reading from a script? Idolizing Captain Kirk? Anyway, I am very pleased with it otherwise. I may have to start looking for more personal development podcasts.

It is an introduction to personal development, and he starts it by talking about how he was in jail for three days when he decided that he could grow to “lift the weight in front of him”. He talks about all the things he “went to work” on, such as his physical energy and his skills. In a matter of years he was able to completely rework his life. And he notes that there was no quick fix. It required thousands of hours of effort. And everything he is today is owed to the main in the jail cell years ago who made a decision to grow.

Finishing this blog post, I just heard it a second time. There is something infectious about a person who is enthusiastic and positive. Even if it is weird to hear their voice for the first time. B-)

Categories
General Personal Development

Goals for September

I had made up a plan for the next year or so that gets more vague and indefinite as the year goes on. It makes sense to me to do it this way since I have no idea what things will be like in a year, but I can have some very specific goals for the end of a year, such as having at least one game published and selling on my website. I had some very specific goals in August, but they didn’t all pan out. I will have to update my plans, but I’m not dejected. On the contrary, I am very pleased with my progress, even if it was slower than I wanted. I overestimated the amount of time I would have to dedicate to certain tasks, and now I have more experience when it comes to making plans.

One thing I wanted to do was make an actual website for GBGames. Currently, the main page is very sparse. I don’t actually have any games to put up yet, but I figure it would be nice to have something better than a text file with hyperlinks. I’d just prefer for it not to look so unprofessional and amateur.

Another thing I want to do is finish Oracle’s Eye, but judging from my progress over last month, I wonder if it would be too optimistic to think I can have it completed in a second month. I have to schedule certain days as development days and not deviate from it. Certain days of the week are already taken up by meetings, and some meetups are already scheduled for this month, such as the Chicago Indie Game Developer Club Meeting being held on Tuesday, September 27th, at 7PM at Dave & Buster’s. I’m also attending the Grand Rapids Schmooze on the 15th, 16th, and 17th, and since I don’t have a laptop, those days are definitely not programming days. I can, however, doodle, write up designs, and otherwise do things that require only pen and paper.

I’d also like to incorporate by the end of the month, which I don’t think is too ambitious at all. I’ve been looking into it, and at a recent seminar an entrepreneur I met suggested that I should meet with the SBA to ask for all the information I need since they give it out freely. My university has an entrepreneurship center that can help point me in the right direction for the resources I need. There are even places to go to get free legal advice.

There are other things I would like to do for the month, but the point is that I need to get a plan on paper so that I am not wasting cycles trying to figure out what to do next or what has to be pushed off to next month. By the end of the first week of September I hope to have the month’s goals specified and fleshed out. Set some goals, make a plan to achieve those goals, and then execute the plan.

Categories
Personal Development

The Ocean Is My Limit So It Must Be Yours, Too

After Blog Day introduced me to some new blogs. I started reading through The Master Smiled and found Crossing the Ocean.

In this one, the Master points out that those who sailed the oceans first had to ignore the warnings of those who told them they couldn’t do so. He then wonders what it is that the naysayers actually were really saying.

The Master thought for a while, than he continued: They were saying: The ocean is my limit, and so it has to be yours too.

How many times has a person been told, “No, you can’t do it. No one has every done it before” and then listened? How many people wanted to become artists or poets but were convinced that they should take business courses? How many people wanted to start their own businesses but were warned away by how “insecure” and “hard” it would be?

Fewer responded to “You can’t do that!” with “The hell I can’t!”

Categories
Personal Development

Principles of Success

Anthony Salter writes about success.

He basically found what I found: that most productivity and success gurus all know the same things. Clearly there are some basic principles to success.

Essentially success can only come to those who have a specific goal. After all, how can you succeed when you don’t know what success looks like? The next step is to make a definite plan for achieving that goal. Definitely planned work saves a lot of time and effort. Finally, take action on that plan. It really is that simple, and yet most people aren’t taught this procedure.

Salter notes that self-discipline is necessary and rare for success, but he finds that the same authors and speakers that talk about success don’t seem to say much about motivation except to have faith in God. That’s fine, but what if you don’t believe in God? Obviously atheists have had success, so what gives?

I haven’t read the same authors that he has. For motivation, Steve Chandler’s “100 Ways to Motivate Yourself” audiobook is the only productivity audiobook I have currently. Listening to it always makes me feel motivated. It even helps me feel motivated if all I do is have it on while I am driving and not paying attention to it. I think the reason is that I am feeding my mind positive thoughts. Anyway, one of the coolest things Chandler mentions is “knowing that you are enough”. No one is coming. It may sound lonely, but it is really quite empowering to realize that you are all you need. I believe in God, but I am a firm believer in Benjamin Franklin’s assertion that “God helps those who help themselves.” Rather than abdicate responsibility for your life, you should embrace it.

Will power gets you started. Self-discipline keeps you going. Motivation reminds you why you’re doing it in the first place. And all of these things will be most effective when you define success, make a plan to achieve success, and have something to start in the first place.

Categories
Personal Development

Build Something Cool

I really enjoyed reading Build Something Cool in 24 Hours. Basically, set aside a weekend with some peers and decide to make something new. You’ll likely be more motivated with others than you would alone and you’ll learn a lot in the process.

I cannot imagine a better, faster path to creativity, innovation, and most importantly getting something done!

Similarly, David St. Lawrence posted a third entry for Creative Time that describes the same thing on a more personal level.

Creative time is a period of outflow. Watching TV or listening to a lecture is inflow, as is reading, eating, and mindless vegging. There is a time and place for all of these activities, but creative outflow will give you more bang for your buck than any other activity you can think of.

Game in a Day was great for me because it allowed me to set aside a weekend to making a simple game, and I did it. Within 24 hours, I went from having nothing to having a creation of my own. It was very satisfying and I learned way more in that shortened period of time than I did in the two months since then. I think I need to schedule another one…

Categories
Personal Development

I’ll Look for Anthony Salter’s Name

The Power of the Force is an older post about Anthony Salter’s specific experience with great opportunities resulting from his actions. He’s a game developer, too, so that’s a bonus.

It’s always inspirational to read about what someone else did, especially when you know that you can do it, too. It was probably this time last year that I was worried about my programming abilities. I was basically telling everyone, including myself, that I was out of practice and needed to work on it. Except I never did much to work on it for some time. Reading programming books wasn’t enough. I needed to actually DO something. When I started working on chapter exercises from different books, I realized that I was programming again. And when I did my first GiD, BOOM, I was making games! All I had to do was stop worrying and start doing. Taking action resulted in taking more action. I was no longer just thinking vague thoughts about what I would like to do. I was doing.

I’ve had self-confidence problems my entire life. In the past I have managed to overcome my fears and self-doubts long enough to do some great things, but afterwards I always reverted back to type, thinking “Whew! Glad I got away with that, now let’s never do that again.” This has kept me from seeing the truth – that everything I’ve really tried to do, I’ve succeeded at. And every time in the past that I have conquered my fear and moved resolutely towards my goals, the results have always been positive. But now I know. This most recent experience is simply the icing on the cake. I’m not going to be afraid any more. In a few years I’ll be speaking at the GDC. Just you wait.

Perhaps by then I’ll be attending myself. I’ll keep an eye out.

Categories
Personal Development

Winning by Default

Smart People Are Dumb. Failure is Success by Jon Jones is a great insight into the best thing you can do to get ahead in work, relationships, and life: show up. Most people won’t, so you win by default.

And that’s why I say smart people are dumb. “But I’m BETTER than him.” “But I want this MORE than him.” “But he’s so STUPID.” “But he’s ugly!”

But he still wins. Because you create excuses for yourself not to try. Because you’re “too smart” to bother trying, because of X, Y or Z reason.

If you were really smart, wouldn’t you be winning? 🙂

Categories
Personal Development

Responsibility

David St. Lawrence wrote about how the glass isn’t half-empty or half-full.

Life sweeps onward through time and space, even for those who are hiding under rocks like a hellgrammite. There is no inevitability that things will “improve” or “decline”. There is only change and your own potential to exert control over some part of that change.

At at given moment, you can bring about a dramatic change in your own future by deciding to confront what it is that you are doing and how it is related to your own chances of personal survival. It is this incredibly powerful, yet subtle action of facing something and taking responsibility for some part of it that starts you an the road to taking control of your destiny.

I’ve already learned the eye-opening realization that I can control my life’s course. In fact, even when I didn’t know this fact, my life was still being changed by my own actions or inaction. My decisions to do or not to do resulted in what I did on a day to day basis, therefore impacting my week, month, year, and life. It is humbling to know that I have only myself to blame for what’s wrong in my life, but it was also empowering to know that all I need is myself. Looking back, everytime I did well, it was because I took responsibility for my own actions. Everytime I felt in trouble, I also was blaming other people.

There are a few keys to taking control of your life. You need to be able to control what you think since all action leads from thought. Joan of Arc said, “All battles are first won or lost in the mind.” You need to be able to discipline yourself to take action instead of getting stuck in analysis paralysis. Finally, you need to take responsibility and stop assuming that circumstance or other outside influences have more of an impact than you do. All life is change, but you can take charge and make sure that it isn’t left to chance. “Go with the flow” is a nice saying, but it is a horrible motto for your life.

Categories
Personal Development

Secret to Getting Results

Sometimes I think about pruning out the blogs that aren’t directly related to game development, software, or business. Then a great post like 5 Secrets to Getting Results comes along from a music business marketing blog in my RSS feeds.

Each item is not so much about doing a specific action or using a specific tool. It is about changing your thinking. The only thing you can control in life is your own thought process, so it obviously has a big impact on how productive you can be. Being negative will only help you be more negative.

You can read more details on each secret, but here is the list:

  1. Set out deliberately to make every day highly productive.
  2. Make the most of your opportunities each day.
  3. Appreciate the privilege of work.
  4. Be courageous!
  5. Develop extra energy reserves.