It’s got stars
and that’s a good thing! I can move now, and the ball is bouncing.
NExt to be able to collect them. Then add some enemies to get the basic game working.
Then polishing…
and that’s a good thing! I can move now, and the ball is bouncing.
NExt to be able to collect them. Then add some enemies to get the basic game working.
Then polishing…
1116 entries. Amazing.
That is like 33×34 people sitting all there and writing a game on one weekend.
33 people, that’s the size of a school class. So you have 34 classes all lined up. That’s the size of an average school here in Germany. Dude!
Lets say in average each developer spent 24 hours on each game. That would be 26784 man-hours in total. Taking an average of 150$/hour we get 4.017.600$ worth of games in one weekend.
I so wanted to do this LD, but I had lots of real-life stuff on this weekend. I still tried, and got about what I expected for the limited time I could spend. Seeing some of the other entries, though, makes we doubt if participating was a good idea.
When I read the theme, I was pretty excited. It’s a very flexible theme IMO that allows about any kind of game if done right. I don’t have Super Mario Galaxy, but I always liked the videos and the idea to have a spherical planet to run around. Also, I was wanting to do an remake of the AtariST game “Startrash”, which was really something totally different back then. The spherical wrapping of the map-array was a great challenge to me, so I tired.
First I thought about mapping an rectangular grid across the sphere but I think it would not have worked out properly. Next thought was to make all the world of a 3D object and use 3D collisions for the movements. But usually that approach takes a lot of time for tweaking the right parameters. Also, I really wanted the game to be “blocky”. So I remembered some subdivision techniques I used many years ago to build a sphere from uniformed triangles. The idea is to use an 4-sided tetrahedron and then insert new nodes at each center of a triangle. So this 2-3 times and you have a very smooth sphere.
But how to connect the triangles into an height-array so the ball can move? That was pretty tricky for me and I decided to add a 3-index array to each triangle that has the neighbour indices stored. That way I could move like: current = sphere.triangles[current].neighbour[0]
I also made an separate array for the height of each triangle and later one for the colour.
The path-creation algorithm was pretty easy. Just start at one point, then move to random neighbours until you hit an triangle that’s of a different height. Reverse to any random triangle in that path then, and continue for the remaining steps. Sort of like a tree grows branches. Then iterate the path and randomly lift the steps. In the final version I do a very long path for height=1 to separate water and land before I grow the hills.
The next problem I encountered was the 3D view and rotation matrix for each cell.
This took a lot of my little time, because it turned out a lot trickier that I first thought. The main idea was to store the center-of-sphere to center-of-triangle vector for each triangle. Then build a rotation matrix from this and the direction something is moving to. do a cross product for the “right-side” vector then. Before rotating, move the object up the y axis to reach the top of the triangle (scale up vector by sphere.radius + height[itriangle]*sphere.height_per_step.
The movement of the enemies was pretty easy, because they cannot change to a different height platform. I just got the 3D position for the new triangle to move to and linearly interpolated between the old and the new position.
***Conclusion***
LD is always great fun. This time I had very little time and so I didn’t benefit and contribute to the social aspects of LD. That’s a shame. Next time I try to get the weekend off and chat a bit more and take time to see what others do. Also, this time were so many entries, that the reading of all the texts would take a full week to complete. I will try to read all this in the time until the next LD. 😉
What when right:
-The idea is pretty good if done right. I made a non-violent game with a wrapping world to walk around.
-graphics. I’m not much of an artist, but I think with my minimalistic skills and time the visuals got to a state that might invite to have a play.
-path creation: It’s not as good as manually crafted levels, but for the short time I had it does a good job.
-time management: Knowing I had little, I concentrated on the bare playability basics without the use of any placeholders. I always had the partial targets to reach in view and was pretty much able to reach them. I am a full time developer in my real time job, so I could quite foresee how much I can do. Tip for not-so-experienced devs: Have small targets and plan double the time you think you might need.
-Language: 😉 Pinping a bit here, since GLBasic is my baby, but I think it’s really a great tool to produce quick results of some value.
-AC3D as a modeler. This tool is very fast at modeling easy shapes. Only the texturing is always a bit complicated. I should see if I find something better here.
What went wrong:
-There’s not much to explore. Manually crafted levels and some extra skills to the ball would be required.
-The game might be a tad boring. More different enemies and extras would have helped. Also a story and several planets to move between.
-no sounds due to lack of time. I have a song in my mind that I wanted to “SongSmith” and sfx would do good, too.
-controls: It works as expected. But… somehow the view rotates way too much. Maybe I should have implemented an slider for the rotation independently from the movement direction. Would have saved me lots of math as well.
-Using MSPaint was a bad idea. The Win7 interface is totally wrong. Usually I use CorelDraw, but I had no time.