Skip to main content

Posts

Balance

Right now I am in the throws of balancing.  Not game balance but life balancing.  At work we are currently trying to wrap up our game and so things are rather busy.  At home both my kids AND my wife's birthdays are coming up in the next couple of weeks.  So things feel rather difficult to balance properly.  I was on track to get a simple blog post every week day for almost two months but I was only able to get through last month. At first I was pretty bummed that I missed a few days and then the old habits started to kick in again so it seemed like a good time to post something to keep the juices flowing.  I doubt anyone really comes here on a regular basis, I assume most people that find their way here do so from one of my posts somewhere else.  But I'd like to spend some more time putting things here instead of scattered all over the place so I will try and keep posting things as often as I can but for the next month or so the posts might have a fe...

Dusting Off The Sketchbook

With work being as hectic as it has been and having spent a good chunk of time on my computer this year already, I decided it was time to dust off the old sketchbook and have some fun.  Nothing special or amazing just some fun doodles.  Sketching is a great time to play around with some brushes, markers and pens and just explore.  These were taking with the camera on my phone in a room with one lamp so the lighting is trash and the flash lit up the ink in spots. Watercolor over marker which made the colors muddy, not good. Watercolor over an inked sketch. 

Scott Robertson: Inspiration and Techniques

This is by far my favorite youtube video ever.  Such good ideas to get some creativity going.  Love Love Love this video!

The Draw of Game Worlds

One of my favorite things to do on a game is to sketch out a map of the world.  Usually the game world comes to me before anything else.  Maybe its because I am an environment artist by trade but I think it has always been the worlds that have drawn me into games. Even when I think back to the pen and paper games I would play with my buddy Issac it was always the worlds that jumped out at me as the interesting part.  At the time I would spend so much time imagining the worlds but for some reason spent all of my time drawing the characters and creatures.  In fact when I first went to art school I thought I would be a character artist and not an environment artist.  Oh the folly of youth. The old Squaresoft Snes RPG games had some of my favorite gaming worlds as well as every single Lucas Arts adventure game.  A mighty nod to the Sierra games such as Roger Wilco and Kings Quest too.  I need to spend more time thinking about my game worlds then I c...

Open Your Eyes | Game Trailer

This game is being built using the BGE (Blender Game Engine).  I have a soft spot in my heart for the BGE.  I have and still do use the BGE even though I use Unity at work.  The BGE is just different to work with which is one of the reasons I really like it.  In the right hands it is more than capable to get a complete game finished.  Anyway the game looks great and interesting and I can't wait to find out more about it.  I love seeing people use Blender especially the BGE.  Awesome stuff!

Bonk's Adventure

Been playing this game with my kids recently and they really like it.  It brings back a lot of good memories for me.  Right when the Super Nintendo came out there was a really awesome console that here in the states was far lesser known the Turbo Grafx 16!  I was one of the lucky few that got one.  I stumbled upon it at Fred Myers when I was there to get a Super Nintendo.  It was an awesome little system but we only got a few games so it just never picked up in popularity.  Any time there was a sleep over my friends would have me bring the system and we would spend the night bouncing back and forth from Super Mario World and Bonk's Adventure.  I would also go through the game manuals and draw all of the pictures.  So it is really fun to play this again with my kids who are getting to enjoy it for the first time.

Staring at Meshes pt.2

I added a few more tweaks to the random shape generator and you can now limit extrusions on each axis when picking a random face.  This little change really makes a big difference in controlling the generation.

Staring at Meshes

I watched a youtube video the other night on a random shape generator that someone had made and got inspired.  After thinking about it as I watched the video I realized it would be pretty easy to do and so I quickly cobbled one together.  Right now it just has some very basic properties to adjust to get random shapes so the foundation is in.  It is already pretty fun to play around with and I have a few ideas to expand it a bit more. There is a common problem that any creative faces and that is the blank canvas or blank page.  The problem is that a blank piece of paper or computer screen can feel like this creative void.  The best solution is to get rid of the empty as quickly as possible.  Like looking at the clouds on a summer day you start to see shapes and patterns as you fill in the empty space.  Usually you will find something that sparks an idea.   The random shapes works in the same way only with a 3d mesh. ...

Wireframe Pass 2 Wrap Up

Wrapping up the last few images for the wireframe I hit the stride I should have had all along.  Even though the last 5 rooms were by far the hardest to block in there was a different feeling to the process of getting them up to speed.  While they were the hardest to get my self motivated to complete they were actually the easiest to complete.  Props and details will come as the gameplay gets solidified. The first quarter of the rooms felt really new and fresh so I kind of approached them as a standalone illustration and could easily blow 30-40 minutes on one.  By the time I got to the last 10% I was so worn out creatively that I just wanted them done so I would slap them together as fast as possible to convey the initial thinking. That really is the way that I should have approached all of them from the very start.  When you spend even 30-40 minutes on something like this you do tend to get a little attached.  That makes it so much harder to look ...

Another Old Game Idea

This is another old game concept image I did years ago.  This one still has some charm to it for me.  I don't know if its from the mix of pixel characters against a soft background or if its because seeing this takes me right back to wondering what the game would feel like to play.

Wireframe Pass 2

All the rooms have been wired up together for a few days and you really do start to get a sense of place.  Even more so when the room thumbnails get updated to a first pass on the vector block out. At first I thought that 29 rooms would not be a ton of space for the game and that does feel some what true right now with nothing to do but move from room to room.  BUT I am starting to feel the art burn taking 29 rooms from super vague thumbnails to even fairly simple and empty feeling vector art block outs. I am looking forward to getting more time to do the art for the rooms but even getting them all to a basic level is taking a while.  I'm 23 in and only have 5 to go which is really good but at this point those last five feel like the first 23.  However I push on and with each new block out I get more excited to finish. 

Documentation

Documenting your work is always a little boring and I'm really bad at it.  Regardless of the zombie like state of bordumb it puts me in I sat down last weekend and put a very basic manual together. Right after I wrapped it up I ended up adding a few new things and tweaked a few others in my engine.  And so begins the dance of documentation updating. I'm pretty stoked actually to have some documentation inplace for the engine and it's data structure.  The number of things in the engine has grown and there is a great deal that I had finished and not worked on that I had started to forget some of the details.  The manual sits at 98 pages right now which I'm kind of proud of as I have never written anything more then 20 pages.

Wireframe Pass 1

I took some time last night and put together two templates for sketching out the rooms for the game.  One is a detailed page that I think I will use when working out more detailed ideas.  The other one is a page with 16 thumbnail screens with some room for a few notes. After I had a few sheets of the templates printed out I cracked open my sketchbook and did a mind map of locations.  I found this much easier doing it by hand instead of on the computer.  Another upside I had not thought about but now appreciate is that when doing this you are naming locations first.  This made it much easier for the next step. After I had a decent sized mind map of 29 rooms I figured I should do some quick and dirty thumbnails.  This was harder to get into at first and I found I had to come back to it the next day.  When I did come back to it everything came together really quickly.  There are some ugly thumbnails that are just a mess but it is enough for a fir...

Fighting Game Engine Pre-Bloat

As we head into the wire-framing section for the game there are some areas of the data structure that I feel are a little bit bloated and kind of sloppy.  I am happy with 99% of the structure but there are still some things that I keep thinking about that I would love to add and re-organize. One of the things that I would love to build out to be more powerful is the animation system.  Currently it is just a list of images and you cycle through them like a flip book.  But it would be much more powerful to be able to have multiple images with their own positions stored as frames.  We could even expand it out to trigger logic if we really wanted to but that is like feature creep on top of feature creep.  Changing the animation to work in this manner would not be very hard.  The part that I am mulling over right now is if I want to break the idea of splitting this up to multiple objects.  So one object that can use flip book animation and the other coul...

Verbs

So I finally got around to something that I had been putting off for awhile now and that is the concept of verbs for my game engine.  I came across the old SCUMM training manual that used to be used by Lucas Arts to train up their new adventure game programmers.  Reading through it I came across a section talking about implementing new verbs.  This really interested me as I have played all of the old classic SCUMM adventure games and know a fair amount of how SCUMM worked.   The coolest thing about the verbs in SCUMM was that they could be custom built for each game.  This is very noticeable if you look at Loom compared to any of the other games.  The core of my current engine that I am calling SWINE is really similar to SCUMM in a lot of ways and mulling over the idea of custom built verbs as the main interface and I finally landed on a decent solution with my approach. So I got the first pass of my concept of a verb interface integrated into t...

Logic Flow

Over the weekend I expanded upon the logic processing or my game engine.  Originally it would process all of the logic for the current room (a level essentially), actors in the current room and any logic scripts held in a global list.  When a new room is entered all logic not contained in the global list is dumped and the new room and actor logic is run. There are functions to load and stop global logic so if I needed to kick off logic that would process across multiple rooms that is very easy to do.  But I hit an issue putting together a new room that needed to have more complex logic that was executed only in that room. I could make a script that is run globally but I would need to make sure to kill it when the player exits the room.  This is not a problem but it does leave plenty of room for error if you forget to kill it when the room exits. Introducing "local logic" all the flexibility of "global logic" but with out the need to clean up.  The loc...

Mike Acton "Data-Oriented Design"

This video is amazing and I can't recommend it enough to anyone that is writing code.  Hearing this stuff from someone like Mike Acton should really echo the importance of what he is talking about.  The core ideas he shares here can be applied to EVERYTHING including art and design.  Do your self a favor and really watch this video preferably multiple times to really drive the ideas home.

Features Features Features

It feels like I have added a new feature to my game engine almost every night this week.  These are some important features that have been added too such as halting user input and turning it back on, drawing images and animations without being linked to objects and just a few moments ago I finished adding custom cursors. It's interesting to see how many new things have been added to the engine and hence the data structure I originally designed.  Each new feature was first added to the data structure first.  Doing this always seems to get me thinking about how the feature is going to be access and what it should actually store. An example of this was the cursor.  At first I just thought I would need to point to an image and that would be that.  But when thinking more about it realized that the most common case would be changing the cursor to different images and some of the different images would need offsets.  So I put together a dimple dictionary of...

Turning Off Player Input

In the last post I talked about how thanks to the data first design idea how easy it was to add in "on_enter" and "on_exit" logic when the player enters and exits a room.  Well after I posted that a situation came up where I really wanted to turn off the players input while a bit of logic ran and then turn it back on when it was done. Again this entirely new feature was implemented in a couple of minutes.  To do this I added in a simple bool variable called "player_input" at the root of my data format.  Then I added two new functions to my "system" functions called called "input_on" and "input_off" where I set the "player_input" to either True or False. Next I added the "player_input" variable to my if statements where I check for input.  There are only 9 spots I check for input 3 for rooms, 3 for actors and 3 for objects.  The inputs there are normal "mouse_down", "mouse_over" and ...

On Room Enter

Over the weekend I was doing some work on the game for my son and ran into a situation where I needed to have an object start hidden from the player.  In the current pipeline with Inkscape I use python and the command line arguments to export out all of the pieces that I need.  This has been awesome for iteration and adding new things to rooms.   The rub is that the object needs to be visible in the SVG file when it exports otherwise it exports and empty png image. There are some ways I could get around it in the pipeline but I wanted a much more useful solution.  I opted for putting in two new functions to my logic "on_enter" and "on_exit".  Then added the execution code right before and after the main logic processing code. On_Enter is run when a new room is entered.  I already track the current room and the last room so the logic triggers were already there now I just loop over all the logic attached to that node and I'm done.  I do ...