Jump to content
  • Advertisement
Sign in to follow this  
Adams555

My first serious attempt at a good game.

This topic is 4476 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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.

Share this post


Link to post
Share on other sites
Advertisement
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

Share this post


Link to post
Share on other sites
[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.

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
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!

Share this post


Link to post
Share on other sites
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 80
flag1 noMove
compare abs nearestFoodX abs nearestFoodY
flag1 MoveOnX
flag0 KeepWalking
flagNeg1 MoveOnY

MoveOnX
compare nearestFoodX 0
flag1 mR
flag0 KeepWalking
flagNeg1 mL

MoveOnY
compare nearestFoodY 0
flag1 mU
flag0 KeepWalking
flagNeg1 mD

mR
memory2 0
moveRight

mL
memory2 1
moveLeft

mU
memory2 2
moveUp

mD
memory2 3
moveDown

flagBool canMoveRight
flag0 mU

flagBool canMoveLeft
flag0 mD

flagBool canMoveUp
flag0 mL

flagBool canMoveDown
flag0 mR

KeepWalking
compare memory2 0
flag0 mR
compare memory2 1
flag0 mL
compare memory2 2
flag0 mU
compare memory2 3
flag0 mD

mR





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 nearestFoodY
flag1 MoveOnX
flag0 KeepWalking
flagNeg1 MoveOnY

MoveOnX
compare nearestFoodX 0
flag1 mR
flag0 mL
flagNeg1 mL

MoveOnY
compare nearestFoodY 0
flag1 mU
flag0 mU
flagNeg1 mD

mR
moveRight

mL
moveLeft

mU
moveUp

mD
moveDown

mLD
compare randomInt 0 5 0
flag1 mL
flag0 mD
flagNeg1 mD

KeepWalking
compare currentFood 140
flag1 mU
compare currentFood 80
flagNeg1 mLD
moveRight





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]

Share this post


Link to post
Share on other sites
Ok, here's another script I made:


compare abs nearestFoodX abs nearestFoodY
flag1 MoveOnX
flag0 KeepWalking
flagNeg1 MoveOnY

MoveOnX
compare currentFood 90
flag1 noMove
compare nearestFoodX 0
flag1 mR
flag0 KeepWalking
flagNeg1 mL

MoveOnY
compare currentFood 90
flag1 noMove
compare nearestFoodY 0
flag1 mU
flag0 KeepWalking
flagNeg1 mD

flagBool canMoveLeft
flag0 hitLeftWall
flagBool canMoveRight
flag0 hitRightWall
flagBool canMoveUp
flag0 hitTopWall
flagBool canMoveDown
flag0 hitBottomWall

mR
memory2 0
moveRight

mL
memory2 1
moveLeft

mU
memory2 2
moveUp

mD
memory2 3
moveDown

breed
split

KeepWalking
compare memory2 0
flag0 mR
compare memory2 1
flag0 mL
compare memory2 2
flag0 mU
compare memory2 3
flag0 mD

mR

hitLeftWall
goto mU
hitRightWall
goto mD
hitTopWall
goto mR
hitBottomWall
goto 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?

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!