Monthly Archives: February 2014

Generating N step random walks with a fixed start and end point

I have an ambitious task ahead of me.  I would like to use “procedural” generation for a random walk on a two-dimensional lattice with a specific start and end point.  My team is currently branching on three ideas to find the fun behind the premonition  mechanic.  My branch is a memory game with a sequence of moves required to reach the end.  The player will use the premonition mechanic to show where the next step in the path is located.  The premonition will be limited use requiring memory to navigate the sequence.

I am trying to find a method for generating the walks without stochastic processes or Markov chains.  Given the short time limit I will make ten different paths and then choose one.  The result should be random enough for the sake of the prototype.

I feel like my team understands the amount of wasted time on the prototype.  I know my team has been committed to the button game since the start.  I didn’t know that when I joined the team.  During the 100 game idea phase the button game I noticed button was never on the chopping block.  I was also the only person that objected to the idea.  I object to arbitrary gameplay without an underlying system.  My team still doesn’t have a solid second game idea.

I heard from a developer at Google today.  I found it interesting that engineers at Google are responsible for the SCRUM process.  He mentioned a SCRUM master that divides up the tasks required to complete the project into day long portions.  Ideally engineers can come in and start work immediately through their own initiative using the tasks generated by the SCRUM master.  I have worked with engineers that are unsure regarding tasks that benefit the project.  I would like to try utilizing a SCRUM master system to benefit a team of engineers.  I found the insight shared by the Google developer helpful toward managing real software projects.

Systolic Array Pathfinding

I am excited to have pathfinding for a tile based system finished.  I used the idea from systolic arrays I learned in Digital Systems (Electrical and Computer Engineering 5530).  I regret that I don’t remember the name of my instructor for the course.  He definitely deserves a gold star.  I am sure he thought he was teaching us to design processing units for FPGA’s, but the ideas provided in the class are still useful.

The systolic array destroys created capsules after a specific number of steps.  I have increased the number of steps to showcase the idea.  I have tried to capture my excitement with a few pictures.

The player hits the left mouse button spawning a capsule that moves through the maze and propagates more capsules at any junctions in the maze.
The player hits the left mouse button spawning a capsule that moves through the maze and propagates more capsules at any junctions in the maze.

 

Paused image of the game showing the maze from a top down view.  The circular objects on tiles are actors that have propagated from the original actor at maze branches.
Paused image of the game showing the maze from a top down view. The circular objects on tiles are actors that have propagated from the original actor at maze branches.

I am happy with the system.  The tiles that serve as the cells of the systolic array are drag-and-drop.  Ultimately the system can accommodate both procedural and tool created levels without writing any additional code.  The idea for level development is Lego blocks.

Maze Game?

My team has a new design for the prototype being created in parallel to button. I encouraged my team to have someone be arbiter and own the idea. I also encouraged my team to set a time limit on the design meeting. My team was effective when given a thirty minute time limit and Rachel as arbiter. Rachel did a great job cutting the fat and motivating the conversation. After the meeting I began building a maze with walls that the player can walk through. I built a maze out of solid and walk through walls. I built floor tiles with parameters on the direction that capsules can move from the specified location. I added generation of a capsule when the fire button is clicked, but the capsule does not move yet. I imagine the system will act as a systolic array with each floor tile feeding the next floor tile. I have used systolic arrays as a hardware method to do matrix multiplication, so it will be nice to implement a similar system.

I have learned large teams have focus problems. Democracy is a bad process when focus is required. Autocracy reigns supreme when a group needs to be organized in a short amount of time. Autocracy does not sacrifice flexibility so long as leadership maintains a directed thoughtfulness making appropriate cuts when an idea does not work. I am still learning when to assume the role of autocrat and when to be an engineering representative on a council.

I play a lot of Civilization 5. The quote from Leonard Bernstein on completion of Big Ben expresses my concern: “To achieve great things, two things are needed: a plan, and not quite enough time”. The problem with the project prior to today was the lack of a plan. Democracy is at fault, since everyone has an idea. Autocracy therefore may be better to begin a project. Once established the project might benefit from democracy since the product can serve the role of autocrat.

MazeGame

Explosion.

During prototyping today there was another indeterminate length meeting. I was a good sport and attended. The game we started prototyping where the player chooses loss is gone. I am now prototyping an idea of being able to press a button and see how you could die inside a cone of vision. I have thirty hours to build a prototype with Vinod on a new design that may succumb to similar problems. My team is still using Unity which may save Vinod and I.

I am frustrated with my team. I wish one person would take ownership of the design. I am disappointed that my team was unable come to a consensus and scrapped the design to make up a new design. I am willing to call my team’s bluff on being able to produce a viable prototype before March 4th with a three week production schedule. My team might pull it off. I am less than optimistic.

Thursday’s are devoted to my Game Programming 1 course. I am building an engine. My project for the current week is to load information from LUA config files to prevent the need for recompilation and to better architect the division between game engine and game. My new workflow where I schedule activities has helped reduce stress.

Robot Game

I am writing now for last Tuesday, Thursday and today. My team is currently building two prototypes in parallel. I spent last Tuesday and Thursday after class building a white box prototype of ideas from the “Robot Game”. I will be boycotting meetings without clear itineraries and time blocks since such meetings are ineffective and gormandize time. I am going to try to help the producers understand that to be effective meetings need itineraries with clear objectives that can be accomplished in a specified period of time.

I know that both prototypes being created by my team are missing a solid thesis question. I realize that not having a clear landmark, in this case a thesis question, is ineffective. My team discusses thesis questions, but eventually resolves back to talking about game specific elements. My team is getting close to an answer. I am comparing the process to numerical approximation of a thesis question similar to numerical approximation of zeroes of an equation. Therefore instead of zeroing in on a specific thesis question my team has been circling trying to find a solution thesis question that fits a game design that is also being approximated. I am panicked since we are numerically approximating a system of equations.

I am now employed developing a database solution for a game. I am happy with the work. I am making adjustments for the time requirement in order to be effective. I do miss having Monday and Friday to work. Overall, I feel the experience will be valuable for my employer and myself.

I have been working on a schedule. I now have 15 hours set aside for Game Programming 1, 9 hours for Game Ethics and 10 hours for Game Projects. I will adhere to the schedule to ensure that I am able to spend adequate time attending to my duties. My reason for allocating so much time to Game Programming 1 is that I would like to be an engine programmer. Game Programming 1 will bring me closest to that goal.