ALPHA - Fall ‘05
Total Time: 103 hours
————————–
–
Stickman Game Engine
–
Source Location: http://ew.xidus.net/download/SGE
Current Downloadable (Win32) Binaries:
http://ew.xidus.net/download/SGE/bin/collisions.exe
http://ew.xidus.net/download/SGE/bin/collisions-B.exe
—-
General
———–
- Rename SaucerAI to DodgeAI, as that is more accurate. It is the first in a series of AI routines.
- Change SetVelocity to reflect the new MAXSPEED define.
- Add screen transitions (left/up/down/right wipe, perhaps spiral)
- Add cinema support (AVI’s)
Bitmaps
———–
- Stretching bitmap’s loaded from files for the background doesnt seem to work
- Bitmaps loaded via file retain their directory and extention within their name, even though they shouldn’t
Scripting
———–
- Need better error handling - It can always get better, but hey, it works alright now.
- Add ability for GENERIC specified bitmaps to use the PRGW/PRGH parameters
- GetBitmapDimensionsEx() seems to have stopped working, add scripting functionality to specify width/height of bitmaps loaded from files
- Add ability for file loaded bitmaps to specify the PRGW/PRGH parameters
- Add the ability for the #LEVEL section to wipe the game’s loaded bitmaps
- Add PRGH and PRGW capabilities to the bounds entry for sprites
- Fix error: unable to script two sprites Solution: This was actually a linking problem, and a fair memory leak if the z-orders didnt work.
- Allow level’s to specify their song in the script (via number or enumerated type for song)
Levels
——–
- Add field to specify song via number
- Work on run time level script handler (this will take a while…)
Level Creation
———————
- Need a better way then defining each object individually…. perhaps a level editor….
Game Physics
————————
- Create or find a 2D collision library that -works-
- Fix dragging so sprite doesnt move when held.
- Make it so dragging sprites do not collide with other sprites.
- Edit DodgeAI so width/height are not based on bitmaps, but rather on the actual sprite values.
- Don’t allow Dodging sprites (that is, sprites with the DodgeAI routine) to modify their velocity if being dragged.
- Allow function pointers to collision function’s specified in game.c so it is more like a game engine. Sprite.c really shouldn’t have to be compiled when writing the game.
Sound
———–
- Loading needs to be able to set the number of bytes for the song, or record them all for each wave. Solution: Fix via reference table
- Modify sound so streaming isnt time based, but rather based on play-write cursors
- Modify so level’s specify the songs they play
- Add code for multiple sounds to play, rather than just one song.
- Remove MIDI support
Other Quirks that are Related
———————-
- XLib: Need to do a fflush() when writing the end tags
- XLib: Make it includable in C++ projects
- XLib: Allow users to specify the file they wish to log to (ie, expansion of glog and new macro)
- XLib: Add file checking for glog() log files
- XLib: make it so new files start logs at 1 and continue normally
- XLib: change the “time” variable name to stime for *nix compatibility (time is a *nix function)
————–
CS I - Word frequency and total counter
Code -> http://ew.xidus.net/download/cs1/5
Input file used for testing -> http://ew.xidus.net/download/cs1/5/input.file
Win32 Binary -> http://ew.xidus.net/download/cs1/5/words.exe
————–
CS I - Lab Project - Basic Interpreter
Code & Scripts -> http://ew.xidus.net/download/cs1/final/
Download Binary and Scripts -> http://ew.xidus.net/download/cs1/final/final.zip
Words of wisdom:
The format is very specific. Check the example scripts to see how it should be done. You can create new scripts and run them through the interpreter, and whoa, you could almost call yourself a programmer.
Make sure when you specify the file you don’t type the name wrong, and make sure you either have the correct path or that the script is inside the directory that the interpreter binary is in.
All scripts should be plain text files.
Keywords (commands) are goto, stop, write, set, read, and if.
The details of the interpreter and the mysticalness of scripting are thus:
All variables and all constants are integers.