So over the week since I decided to come back to blogging I realized that of I was going to make sure I posted regularly I need to work on my projects to find something new and insightful to write about. Hopefully I’ll find the time to work on my projects enough to post something once a week. So what does any of this have to do with the title of this post? What is “Haggle”?
Haggle is my white whale in a sense, it is the project I have never finished, the game that I have used to learn about all sorts of game development platforms but never could get far. The game consists of rapid trading in order to get a full hand of one type of card.
The major goals in the development process are:
- Mobile or mobile friendly
Making a game that has really quick controls that work well for mobile is incredibly difficult. The very first versions of Haggle were developed for Android but never got far because the card selection process was to slow to me. I tried to leave it alone and come back to it while working on the basics of a server for multiplayer functionality but I lacked the experience to make any good progress. (I also realized a couple months ago that in my previous attempts that I was focusing way too much on details of how to scale up the servers and the graphical effects instead of implementing the core gameplay.).That was when I gave up the first time.
A few months later I was already back to making Haggle, this time for my AP CompSci class as a final project. This time I was still using Java but instead of the Android canvas I was using the Java Swing libraries. The server I had mostly copied from my last attempt but I never really worked on this version much because I felt like it just looked terrible and using images was a pain from what I remember.
HAggle got put on the shelf for a while at that point. I focused most of my time working on trying to make a turn based strategy game in HTML5 and canvas but the team I was working on didn’t get me much support in front end development and things just started moving super slowly. Fortunately, I still learned a lot about rendering in the canvas tags and what i would need to do in order to properly manage game state. When this project started falling apart I started to mess around with WebGL rendering. I decided to use Babylon.js because I had already gone through a short course on how OpenGL and WebGL work at the basic level and I wanted a decent amount of abstraction (but with shader access of course). This lead to a version of Haggle that was almost just purely visual experiments and animations ect. When I couldn’t get the exact look for the game that I wanted without some heavy handed shaders I decided to drop this version (this is where I began to realize that I was focusing too much on certain details before I even wrote any gameplay code.)
Progress is slow though, with the end of the semester coming, and my laptop needing a a replacement SSD I have to put this project almost entirely on hold. Hopefully, I will have something new to say about the project next week though. This post has gotten quite a bit longer than I expected it to be, and my writing has gotten a bit aimless at points but I think its a good start for this blog. Thank you for taking the time to read this, or at least parts. If you want to know how I use these libraries or how to set up a project like this let me know and I’ll write something about how I set things up.