Monday, October 30, 2006

Think tank

This weekend has been productive. The author Håkan Hallström and me had a day of work. Mr Hallström had a couple of lessons on scripting in the gunslinger environment. It's not a s easy as it seems at first. Even I had trouble making the characters walk on the correct path. Eventually everyone walked in line, literally.

The sunday were spent digging, the foundation for my carport is soon in place, and shopping new furniture at IKEA. I also had time to fix some bugs in the demo and do a little testing. The day was rounded of with a short game of doom, the boardgame, with my girldfriend. It sure happens a lot.

Friday, October 27, 2006

Demo square, part 3, Release!

Download the demo from the homepage.

The long awaited demo is finally here. It's not without trouble. And there are a few issues. But I have already got some suggestions that will improve the game experience.

I will not yet spread this to the world. There are still some bugs. I will try to fix the issues coming up soon. And then there will be a new release.

Wednesday, October 25, 2006

Java and excelsior jet

I have said this project is written i java, right? Common knowledge is that java:

  • run on any platform
  • is slow
  • is easy to decompile
Plattform independece
As far as this project goes, it wont run unless the graphics are accelerated. Antialiasing, bilinear filtering and such isn't cheap. My laptop turns of acceleration when it's about to run out of battery, and it's really noticeable. Framerate drops to half. So, the part about plattform independence is out the window. Sorry. This game will run on windows (and maybe linux some day). Another reason for this is coming further down this article.

Performance
Java isn't slow. Maybe not as fast as c or c++, but it is starting to catch up. Some benchmarking even show java to be faster, but as I understand it, that was under special conditions. However, the bottleneck (graphics) in my project is handled by openGL or DirectX. And then I am as fast as any game. On my machine (a P4 3GHz with a ATI Radeon 9800) I get the maximum 80 fps.

Reverse engineering
I don't like the idea that my game can be easily decompiled and altered. It has nothing to do with copyright (well, maybe a little bit). I don't want to spoil the game experience, by allowing people to have infinite xp and equipment. Or reading the mission files and finding the secrets, or altering them. This is why I descided to pack everything up in an .exe. Not that it will stop a hacker, but not every java programmer can take it apart in 10 minutes.

Excelsior jet
This is a company/product that takes a java project and compiles it into a windows or linux binary. This has the following advantages and drawbacks:
  • Java bytecode is hidden from decompilers.
  • Resources, data files, images and sound are protected.
  • More accessible, no need for the player to install java.
  • Faster, no need to interpret the code at runtime or before (jit). It is already compiled into native code.
  • Not platform independent, but who use their unix machine to play games anyway?
http://www.excelsior-usa.com/jet.html

Tuesday, October 24, 2006

Demo square, part 2

I'm almost ready for releasing demo square. This morning, on the train I laid the final hand to the cliffhanger endings (there are two different endings). I will clean up some sound code, and make a nice package of it all with Excelsior jet. Then it will pass through some testing (on a machine that is not used in development) before beeing made public.

Keep in mind when you test this that it is only an alpha version. Many sounds are still missing. The dialog system is to be rewritten. Savegames from this game will probably not work with later releases (I'm not promising anything). Lots of weapons, enemies and equipment remains to be done. Also, I will be happy to recieve trouble reports, but there will likely be no updates to the demo square. You have to wait until the final release.

Summary:
I'm closer to a playable release than ever before. But still a long way from a finished product.

Thursday, October 19, 2006

Demo square

It looks like it's going to be a demo of the demo soon, aka demo^2, aka demo square. I have some things for fix before releasing what I have right now. Encrypting all the data files, fixing some minor issues.

I think the average player can play this from start to end in about two hours. And then he can play again with different skills. Since most equipment found in crates are random and most skills you use depend on the weapons you find, every game is unique in some way.

What is important to know is that this is still an alpha version. It is farily stable (it will very seldom crash) but some features are still not what they should be. Feel free to point them out. A total rewrite of the dialog screen is on the todo-list. But the current version works fine as long as you don't want to read past dialogs (it works but it's not a good solution).

I have not yet descided how to host the file. Suggestions are welcome.

Tuesday, October 17, 2006

The future

Right now the project is crawling forward, quite fast, but still crawling like a centaurian bug. It's little feet slipping on the metal floor. But when she lifts her head and looks towards the future, what do she see? Right now, four things are happening.

  • Gunslinger the engine is beeing completed. The engine can always incroporate a new function but is stable and able. The status has been 99% done for a while.
  • The demo game is built by me side by side with the engine. It tells me the requirements of the engine. Right now about 40% of the missions and 90% of the other content are done. Deadline is in one month from now. The demo have the following purposes:
    • Prove that the engine is stable and able.
    • Deliver a fun game to you.
    • Test out how the game works on your computer.
    • Create anticipation towards the next bullet, the bigger game.
  • Create a longer more dynamic game using the same engine. However, this will take a while. I'm not the one who writes this game, it's the author (more on him in a later post). The purpose of this is to deliver a kick-ass action roleplaying game to you!
  • Our composer are writing music for the demo and the game. It sounds really good. His artist name is "Project Grudge". More about him in a later post.

Monday, October 16, 2006

Drinking game?!

One of my coworkers asked me about the status of the game in general and in particular:
"Kan man dricka i spelet?" (Can you take a drink in the game?).

The answer is: of course. There is a function to make the main window spin, and that function is called: setPromille. When drunk it is very hard to aim or interact with people and small objects. Of course you can drink only a little amount and then the spin is only noticeable.

I will now add bottles of beer, wine, vodka and wiskey to the item database. Beer will be stackable, cheap and you have to drink alot to get drunk. Wiskey will be sparese, expensive and get you dead drunk right away. The promille will also make you harder to hit, since you stagger around. And of course body builder (one of the skills) affect how drunk you get.

This calls for a drinking challenge, in the game of course. I have to figure out how this will work.

Saturday, October 14, 2006

Todays progress

This has been a very productive day. My girlfriend have been away most of the day and evening. I have had very little to do but develop my game.

I took another baby step towards ultimate completion. I created a new shotgun, between the advanced combat model and the sawed off. At the same time the combat shotgun was raised to complexity 2 (not everyone know how to handle it, you have to learn how). Hopefully the combat shotgun will not be such an easy choise now. To the left is the image for the new shotgun.



I created the hero version of the warrior bug. The warrior shots plasma from its... rear. The hero (named Chief) also shoots plasma, but a salvo of 5 shots in a spread pattern. It is unpredictable and sometimes very hard to dodge. This new creature needed some improvements to the ShootingBugBrain class.

The most work today, have been scripting a challenge where the player meets more and more formidable foes, until he dies or gives up. It works nicely and proves that scripting can do more than trigger dialogs and such (I knew that). This will be a sidemission in the demo game.

I have also been watching the movie "Stalingrad":
http://www.imdb.com/title/tt0108211/
It was a good war movie, showing the horrors and psycological degradation of the men on the eastern front. It strikes me how far away games are from reality. Nobody in Call of duty wets their pants. I have to do something about this in my game.

When will the release be? Deadline is in one month. Not sure I will make that. For instance there are a lot of sounds to create.

Friday, October 13, 2006

Killer game programming in java

This book written by Davison is the number one book for me. Do you know java and want to employ graphics, controls and sound, this is the number one book for you as well. I must admitt that I only use the first half, the one that is not about 3D. Someday maybe, then I will know where to look.

Many things have been improved after I took Davisons advice. Go to amazon and check out their reviews. They pretty much agree with me but with more words.
http://www.amazon.com/Killer-Game-Programming-Andrew-Davison/dp/0596007302

The book has it's own homepage with lots of extra material:
http://fivedots.coe.psu.ac.th/~ad/jg/

Sure there are other books. Like Brackeens Developing games in java. But where Davison explains technical details, Brackeen develops a framework. It's not a bad book, but I already know software design.

Thursday, October 12, 2006

Introduction

This is the blog of the game engine Gunslinger. It can be used to create action packed sci-fi games or dynamic roleplaying games, or anything in between. It is developed in java as a hobby project. It has the following features:

  • Top down perspective main view.
  • Fog of war. What you see is what your character can se. Everything else is black.
  • BeanShell scripting allow dynamic events and on the fly interaction.
  • Dialog system with conditions and actions.
  • Inventory system with different types of weapons, equipment and other items.
  • Skill system with 10 different skills and specialisation. Combat oriented.
  • Mission editor with about 10 different grahical tilesets.
  • Object editor that can create new guns, enemies, items and obstacles.
The status right now: The game engine is stable and has most features.

What remains to be done:
  • More graphics, tilesets.
  • More item graphics.
  • More enemy ai.
  • Complete the demo game.
Here is a screenshot to give you an idea of what to expect.