Hex or Haxe

Transforms the developer into a frog. While hexed, the target cannot code or cast debug.

The Game Project

, , , ,

Hello again!

Here I am, back for some more in-haxe game development and I don't know if you noticed already in these 24 words but I am very excited with it! Let me explain why.

Some background
Few weeks ago we had some UML 2.0 training in the company that I am currently working. We covered a good part the UML 2.0 specification like System analysis( Use-case modeling, class modeling, interaction modeling, behavior modeling with activity diagram) and Software design (packaging and components). These were not new for me but I must say that now it seems a long time since I studied them on college and how easy it is to forget how to use this expressive visual language.
Anyway, in this training we practiced a lot with a Solitaire Game- our great Windows companion when Internet is down - and that really motivated me! And I also wanted to take it to another level: portable, multi-platform, mobile and web! All this writing only once! Of course, Haxe poped up in my head! idea

The game project
So let's get started! BUT, this time before starting head-first into code let's define some ideas and concepts of this project so I ... WE can be synchronized. I know, I know. Hold your horses, we'll get there shortly. This is also fun, I promise.

If I had to summarize the game project in one phrase it would me like this: an open source card game engine framework developed using Haxe.
Does it sounds good? Yeah... I think so too. Good enough for now. Let's get into the details.

Open Source
Yes sir! This will be OSS! I must confess that this is my first attempt on starting an OSS project. There is a lot of conceptual and practical stuff that I have no idea! What does it take to make a good small OSS project? Do you know? Please help me because I really need it!
From the top of my head, these are my initial questions:
  • Where to host the project? Google Code? Github? Another option?
  • Which license to use? GPL? Apache? Creative Commons? Another?

Card Game
We all know some card games and they share lots of things in common. They are fun to play either alone or with other people. It's not a very abstract concept because, duh, you can physically play card games in the real world. Initially is not complicated, we can achieve the core goals with a few hours of coding. It will get complicated I can also assure that but it's up to us.

Game Engine
no Uh oh! The evil GE again (at least for me the Game Engine is an evil thing). The game engine is the technical core of every electronic game. It's responsible for (again from the top of my head):

  1. Rendering. Most of the time it's doing it so you better do it well!
  2. Game state. Is the game started? Game over? Paused?
  3. Game configuration. General preferences like resolution, save dir. etc
  4. Game resources. Loading images, sounds, saved games and all kinds of assets
  5. Input and events. Keyboard, touch screen, network...

Do you see why I call it evil?! It's much more than that actually devil but I want to keep this quite simple (I wonder if it's even possible...). Anyway, LET'S DO IT!

Framework
Why not!? How cool it would be to provide a framework for developing card games! This framework would contain the Game Engine and Card Games common things ... like cards and piles. So game enthusiasts can easily implement a card game using the framework. My personal choice, and the one we'll be implementing, will be the classic Patience (a.k.a. Solitaire) that tanks to Windows is world wide known. We'll implement it using the framework. Later we can implement other card games like Spider Solitaire, Free Cell and what the hell, why not create our own original card game?! pirate

Developed using Haxe
I think this is a reasonable choice since Haxe is a multiplatform language. Just picture it: code once, deploy anywhere! Beautiful. But that's just a dream, reality is a different thing. What I really want to achieve, and I think Haxe is perfect for it, is to build a platform independent card game engine. The only platform dependent parts would be the Rendering and maybe the Input. For instance, we'll be mainly using Flash for these two because "Flash is good" and I know a bit about it already so it's easier. Later we can implement and plug in something more complex using SDL and OpenGL! bigsmile

That's it for now my friends! I won't lie, this is like a dream to me. I feel very motivated when I talk about it and I really want to make it work. But I also know my limitations and circumstances so doing it alone will be quite hard.

I leave here my invitation to all of you Haxe and game developer enthusiasts to JOIN ME or just support me with this project. It will be fun!

Tot ziens! Abraços!

Starting of a new dev blog!Prologue

Comments

Anonymous Tuesday, July 20, 2010 4:58:47 PM

TopMusi writes: Hey man! I really liked your idea and im willing to help, but i have a question: Are you aiming for a framework OR a game? IMHO, the answer to this question can save a lot of time and trouble. And here are 8 little steps to make a successful OSS project: http://www.wikihow.com/Have-a-Successful-Open-Source-Project

William R. J. Ribeirobillbsb Wednesday, July 21, 2010 12:14:18 PM

@TopMusi: Hi there! Thanks for stopping by and I am glad that I already got someone interested with the project! If you are really interested we can exchange some emails. The answer to your question is BOTH! A Framework AND a game (Patience). The game will be developed using the Framework - as I said on the Post entry. By the way, do you think I explained well the game project? Was I clear enough on my text? Thanks a lot for the link too! Cheers!

Write a comment

You must be logged in to write a comment. If you're not a registered member, please sign up.