My first serious attempt at a good game.

Started by
14 comments, last by Jeremiah Griffin 17 years, 9 months ago
Hello. I've been working on a game that I call Intelligent Design for quite a while. I would appreciate comments, suggestions, etc. on the game. The link is at the bottom of my post. Here is a screenshot of the game screen.. Screenshot Your goal is to write a script for little organisms (the blue/red dots) to follow. The green dots are food. The organisms fade from blue to red as they get 'hungrier', and if they don't find any food before they've become fully red, they 'die'. The game starts out with lots of food, a reasonably simple script is plenty to keep them alive until the timer (the red bar at the top of the screenshot) runs out, in which case you win. You also win if the total amount of food held by the organisms is 5x greater than when the level starts, but that is unlikely to happen (it is mainly so that if a good script is run on an easy level, it quickly ends instead of having to wait for the timer.) The game gets progrssively more difficult by reducing the amount of food in the map, so it forces you to write a better script. Read the in-game help files to learn how to write the scripts. Please let me know if you like it, hate it, find a bug, etc. And also, please tell me if it doesn't work. I have only been able to test it on my computer so far. And here's the link! Intelligent Design P.S. The game is not finished yet, just at a playable state. I wanted to get feedback before I continue, so that I know what to work on. One main problem is infinate loops. If you write an infinate loop into your script, it currently does not detect it, so be careful. Kill the process if you must. Run intelligent_design.exe, and write your script in the textbox on the right side of the screen. The program is in 1024x768, so if you don't want the screen to have to keep changing resolutions, you might want to set your resolution to 32 bit color, 1024 x 768. Again, this game is still rough around the edges, so let me know if you find anything wrong with it it particular.
Advertisement
Couldn't run it: Didn't have MSVCRTD.dll. Did you distribute a debug version?
Projects:> Thacmus - CMS (PHP 5, MySQL)Paused:> dgi> MegaMan X Crossfire
Ah.. Thanks. I did distribute a debug version. I'm not sure if I fixed it in the project settings, so I put the appropriate dll in the zip along with the other files..

The .NET 2.0 framework is required, by the way, for the visual basic portion of the program. intelligent_design.exe was produced in visual basic 2005 express, and life.exe, which is the actual game portion, was produced in c++, using SDL.

Please try it out and let me know if it works now.

Thanks,
Adam
[A somewhat late response]
I've tried out the game now, I've loaded "Load_This.lsc" and previewed it, and I must say that it looks interesting. Only problem is, about 15-30 secs after I start the game (it's the same amount of time each time, around 1/4 of the red bar has disappeared), the fullscreen "life" simply shuts down, and I do not know what it's doing...

Tips on the scripts:
For sets of variables, try and use an array-style syntax, such as "()" or "[]" to enclose the number, example: "flag[0]" or "memory[2]". Also, instead of something like "flagNeg1", try "flagEquals[-1]", or "flagEq(-1)". As for defining flag operations, try making it require a colon ":" so it isn't as confusing, or something to make it pop out a little more.
I didn't exactly go through all of the scripting, just skimmed it a little...
With the form, I would suggest keeping it with a standard Windows style (border, window bar, background color), and allow (Ctrl+A) "Select All" in the text boxes.
Projects:> Thacmus - CMS (PHP 5, MySQL)Paused:> dgi> MegaMan X Crossfire
Thanks for the comments.

The program ending early is something I put in on purpose to keep the game from getting too slow. If the combined health of all of the organisms exceeds a certain value, it automatically shuts down. There is a level system, and load_this.lsc is one of the best scripts I've written, so usually without having my example script, you'd be using a fairly bad one in the earlier levels anyway. I think I'll add some text that says "You've won" or "You've lost" for a few seconds to make it clearer that that was intended.

The idea is that you have to keep refining your script to advance to higher levels.


I had to write the scripting system myself, so I made it as simple for me as possible. I'm not really capable of writing anything much for advanced than the current system.

Thanks for the comments, I'll certainly revise my program a bit.

Adam
I can't load the mscorees.dll apparently, so no feedback from me, sorry.
Chances are you don't have the .NET frameowrk installed. .NET framework 2.0 is required to run this.

Here is a link to the download site of the x86 (Intel processor) version of the .NET framework. If you don't have an intel processor, you can just google .net framework..

.NET Framework download.


The .NET framework is required for the VB.net express portion of my program.

It is 22.4 mb in size, so if you don't feel like downloading it / installing it on your comptuer, please don't feel obligated to do so. If you are curious about my program and don't mind, then the download is available to you.
You know, this was pretty impressive. I just found the script to be a little complicated to use... (maybe because I don't know asembly, tought).

Once I tought about doing something very similar to this... it would be actually a game were you had lots of units, and each one of them had a script controling their actions! So they moved around the world, trying to eat and reproduce. Well, I imagine that having this idea is pretty simple, the actual complicated part is coding it :). Anyway, but one of my ideas was that, for each line of script that the particle read, they would loose one unit of food. This way, the simpler your script was, the more successfull it would be. I imagine you have your own plans about the developlment of your game, but oh well, these are my 2 cents...

Anyway, I tought this was awesome, so please keep us informed as things evolve over there!
Did I say the script was too hard? Well, your help file was very good! Anyway, here's the best script I got:

compare currentFood 80flag1 noMovecompare abs nearestFoodX abs nearestFoodYflag1 MoveOnXflag0 KeepWalkingflagNeg1 MoveOnYMoveOnXcompare nearestFoodX 0flag1 mRflag0 KeepWalkingflagNeg1 mLMoveOnYcompare nearestFoodY 0flag1 mUflag0 KeepWalkingflagNeg1 mDmRmemory2 0moveRightmLmemory2 1moveLeftmUmemory2 2moveUpmDmemory2 3moveDownflagBool canMoveRightflag0 mUflagBool canMoveLeftflag0 mDflagBool canMoveUpflag0 mLflagBool canMoveDownflag0 mRKeepWalkingcompare memory2 0flag0 mRcompare memory2 1flag0 mLcompare memory2 2flag0 mUcompare memory2 3flag0 mDmR


Problem with this script is that the colision part doesen't work... I don't understand what I'm doing wrong.

But the one I really liked was this one: I build it before I understood how memory management worked, do he doesen't store any information :) Still, it managed to go as far as level 15

compare abs nearestFoodX abs nearestFoodYflag1 MoveOnXflag0 KeepWalkingflagNeg1 MoveOnYMoveOnXcompare nearestFoodX 0flag1 mRflag0 mLflagNeg1 mLMoveOnYcompare nearestFoodY 0flag1 mUflag0 mUflagNeg1 mDmRmoveRightmLmoveLeftmUmoveUpmDmoveDownmLDcompare randomInt 0 5 0flag1 mLflag0 mDflagNeg1 mDKeepWalkingcompare currentFood 140flag1 mUcompare currentFood 80flagNeg1 mLDmoveRight


By the way, I was the above anonymous. Also: the variable currentFood isn't listed in your command list :)

EDIT: Well, I just added the top two lines to my first script. This makes less possible to him to die in the early levels.

[Edited by - algumacoisaqualquer on July 14, 2006 9:41:25 PM]
Ok, here's another script I made:

compare abs nearestFoodX abs nearestFoodYflag1 MoveOnXflag0 KeepWalkingflagNeg1 MoveOnYMoveOnXcompare currentFood 90flag1 noMovecompare nearestFoodX 0flag1 mRflag0 KeepWalkingflagNeg1 mLMoveOnYcompare currentFood 90flag1 noMovecompare nearestFoodY 0flag1 mUflag0 KeepWalkingflagNeg1 mDflagBool canMoveLeftflag0 hitLeftWallflagBool canMoveRightflag0 hitRightWallflagBool canMoveUpflag0 hitTopWallflagBool canMoveDownflag0 hitBottomWallmRmemory2 0moveRightmLmemory2 1moveLeftmUmemory2 2moveUpmDmemory2 3moveDownbreedsplitKeepWalkingcompare memory2 0flag0 mRcompare memory2 1flag0 mLcompare memory2 2flag0 mUcompare memory2 3flag0 mDmRhitLeftWallgoto mUhitRightWallgoto mDhitTopWallgoto mRhitBottomWallgoto mL

The cacth about this one is that, if there is food close to the rganism, he won't move until he is really hungry... this is quite a food saver. Like the others, the colision with the wall doesent work... in early levels, it's better to change the noMove to split, it will make the game move faster.
Another question I have: what are the initial values of memory1, 2, etc?

This topic is closed to new replies.

Advertisement