Shooter Game Talk

Make games! Discuss those games here.

Moderators: Bob the Hamster, marionline, SDHawk

Post Reply
User avatar
BlurredVisionGames
Slime
Posts: 17
Joined: Wed Jun 17, 2015 5:36 am
Location: Phoenix

Shooter Game Talk

Post by BlurredVisionGames »

Hey everyone.

Got a game up and wanted to provide a place to get feedback from.

Its just a demo thing i made to demonstrate concepts i may use for an actual game one day. Specifically the pseudo class like structure I used using parent relationships with slices to make particle emitter things. (?im not sure how i did it?) kinda like tables in Lua i think.

so. resolution 440x400 and 30 fps. any isues with that let me know.

its made on one of the nightly builds. music and sound dont work. so i used a midi track i made. it has a offkey note, sorry.

anyway. enjoy the game.
and any comments make me a better developer, so leave feedback if you like. even if its negative.

thx everyone
User avatar
kylekrack
Liquid Metal Slime
Posts: 1240
Joined: Mon Jun 16, 2014 8:58 am
Location: USA
Contact:

Post by kylekrack »

Holy crap I beat it. That was intense man. I wasn't sure if the rate increased when you take a tower down but I was sure after I took down three. I was just playing Left for Dead 2 and that wasn't as bad as this (that's a good thing).

First of all, wow, this is great, especially since it came out of nowhere. Also, welcome. It really reminded me of an old Atari game: simple goal, simple controls, and hard as hell so you don't beat it too fast. I think it manages to capture that old feel of gameplay, with the same mystery, the same agency, but uses new technology to give an enhanced feeling for a better experience. In short, I think this is a fantastic example of what this engine is capable of and will be a very useful demo in the future.

Some simple things to note, play sound(0) is in the game loop so it just plays indefinitely and it's really loud and irritating so I would change that... Also the game resolution works just fine as long as you set the OHR's window zoom low enough. I have a habit of pushing ctr+4 every time I open up a game, but it took over the screen and the game was started already and I freaked out. I would put in some kind of title screen, so it doesn't throw in like that, especially with how fast paced it is. 30fps was fine. I don't think increasing it would do anything useful.

I assume you already have future plans for this engine, based on the script and the fact that you said you have plans for it one day. But I think this could almost pull off as a game of its own, all you'd really have to do is add in a menu, powerups, and levels and that would wrap it up nicely. I already notice you have a variable for the number of towers. The first level could start with one, and each level increases in towers, new palettes, new enemies, and new level design. Clearly, you know what you're doing, but since the hardest part is building the engine, changing the maps up and adding some more colors wouldn't take that much time. I guess I just don't know how big you're thinking with this, but sometimes it's better to narrow your scope and create a smaller product than what you were planning on. Then you could post it up on the Google Play store and actually be able to market it. And I hope I'm not just spewing stuff that you already know.

Also, with slices, sometimes it's simpler and less work to set things up in the slice collection editor. You can set up all the containers of the right size and parenting in there, and then in your script you just have to load up the slice collection and it's there. It may be too late to matter for this, game, but for future reference.
My pronouns are they/them
Ps. I love my wife
User avatar
BlurredVisionGames
Slime
Posts: 17
Joined: Wed Jun 17, 2015 5:36 am
Location: Phoenix

Post by BlurredVisionGames »

I couldnt get the sound to work. thats why "playsound" was in the main loop, i was trying to debug it. i gave up but forgot i had left that in there. sorry, that really must have been annoying.

gave you a splash screen. kinda.

uplaoded the changes. code is now in the game folder.

if i make this into a game i will be rewriting all that code. it uses 3 different methods of hit detection i think. watch as you collide with a tower, you bounce off. javascript:emoticon(':)') and its all chaotic from me just doing whatever to get things to work ok.
but im not sure what kind of game i want to make. so theres no plans, just ideas.

thanks for your comments.
User avatar
Bob the Hamster
Lord of the Slimes
Posts: 7658
Joined: Tue Oct 16, 2007 2:34 pm
Location: Hamster Republic (Ontario Enclave)
Contact:

Post by Bob the Hamster »

I am curious about your music/sound problems. What platform are you on? Windows? Mac? Linux?
User avatar
BlurredVisionGames
Slime
Posts: 17
Joined: Wed Jun 17, 2015 5:36 am
Location: Phoenix

Post by BlurredVisionGames »

windows 7.

i used the sdl native nightly version thing from 6-14. I dont know what the difference is.

It accepted the code just fine. but no sound or music. midi worked.
Now when it made the zip folder for me it made two games. one is .exe and one is .rpg.
the .exe file runs fine but no sound or music.
the .rpg file does play sound and music but it only runs 320x200 and all my slices are acting weird.

hope that helps.
User avatar
Bob the Hamster
Lord of the Slimes
Posts: 7658
Joined: Tue Oct 16, 2007 2:34 pm
Location: Hamster Republic (Ontario Enclave)
Contact:

Post by Bob the Hamster »

I think all your problems are backend related.

Your music problems are probably caused by the music_native backend. You should uses music_sdl instead. (It is the default on windows)

Your screen-size problems are caused by the gfx_diectx backend. it is the default on Windows, so it is being used by the distribute game menu. gfx_direct does not support screen resolution changing yet. I hope we can get that fixed before the next stable release.

I think the slice problems you described were probably just a side-effect of the screen resolution being wrong.

Here is how to fix it.

1) Use this nightly http://hamsterrepublic.com/ohrrpgce/nig ... dl-sdl.zip

2) When you distribute your game, check the .zip file, and if gfx_directx.dll exists, delete it out of the zip file.
TMC
Metal King Slime
Posts: 4308
Joined: Sun Apr 10, 2011 9:19 am

Post by TMC »

This is fantastic! I had a lot of fun. I got a huge shock when the spawn rate became insane after killing the 3rd spawner. After that I tried again and beat it the first time by wearing down the last two spawners evenly. Also, the game seems to get much easier after you kill one spawner and can stand in a corner, you don't really have to move anymore. I guess there's not really much you can do about that, since if the spawn rate is any higher then it would become impossible. Well, I guess you could provide techniques for doing more damage (e.g. bullets do less damage at a longer distance), to survive as it gets harder you have to exploit those techniques. Another option would be to slowly increase the spawn rate over time, so you have kill the spawners even while you're being mobbed. Ideally you would always have to be out-manoeuvring the enemies, and causing them to bunch up so that you can dodge around them.

Image

You could make a big game out of it, multiple stages and powerups and whatnot, and that would be great, but it's not really necessary: for its length, it's already a good, aside from missing polish. In particular, I kept wishing that I could see how long I had lasted for when I died, but it fades out immediately. A high scores list by time survived (or a points system), or rather just "Your best time" would be great. The easiest way to implement that is with the import/exportglobals commands. Also, pressing ESC to quit would be nice. And a congratulatory message when you beat it would be nice!

Wow, I didn't notice that the player has a walking animation (and 8 frame one, in fact!) until I looked at the scripts. Top-down, it's not easy to notice because I'm watching the enemies, not the hero.

The crosshairs is a little hard to see against the ground when it's at its darkest. I didn't find it a problem, but a higher contrast colour cycle would be better. Also, it's annoying that you can't see the mouse pointer during the count-down to game start. (One option is to use the brand-new commands unhide/hidemousecursor)

I notice you had to make do without an atan/atan2 command. And had to store data in rect box styles because there are only 3 extradata slots. Lack of builtin support for animations was probably also another major annoyance. Some surprising stuff in the scripts, like the way you used zones! And that the enemies have hitbox slices as children rather than just being a since hitbox themselves; why is that? I don't see why the script to generate bullets is so long either.

So I was wondering whether you had any other requests or suggestions for the engine as a result of making that.
BlurredVisionGames wrote:the .rpg file does play sound and music but it only runs 320x200 and all my slices are acting weird.
To correct what James said, this is because you have another (older) version of the OHRRPGCE installed, which is being used when you double click an .rpg file. The music_native backend isn't working very well, as James said, you should use the default music_sdl. Equivalently to downloading sdl-sdl, you can just download the default nightly (which is directx-sdl), and then delete gfx_directx.dll.

The Distribute Game menu does not include gfx_directx.dll if the game uses a resolution other than 320x200, so there's no need to worry about that. (I hope to add support to gfx_directx for higher resolutions today anyway. I wonder where you found the secret option to select a higher resolution (it's not meant to be a secret, just experimental), but I'd like to make it public after kinks like that are sorted out.)
Last edited by TMC on Thu Jun 18, 2015 12:02 am, edited 3 times in total.
User avatar
BlurredVisionGames
Slime
Posts: 17
Joined: Wed Jun 17, 2015 5:36 am
Location: Phoenix

Post by BlurredVisionGames »

-tmc
Easy after the first tower goes down? yeah space is your friend.
however if you travel to a corner (topright is easiest)and face center, then place the cursor immediatly in front of you, you can split your bullets down both access points. No one can get you, even the ones who spawn next to you.
There is a lot to think about with balance and exploiting patterns. With two towers left on one side, you can stand in the center on the oppisite side and shoot straight down and not get hit ever. you can finish the game in that spot without moving but its hard.

After the leftclick mouse contest, i think ill start this project for real. A lot of what you mentioned was me being lazy cuz I knew this was just a proof of concept. It's timed cuz that was faster to impliment than storing globals, and was an after thought really, when i decided to post the game instead of keep it for myself. Same goes for the lack of polish stuff, one weapon and lack of power ups or variation in enemies or locations.

I thought the cursor was too bright so i toned it down. I was wrong. I think for the real game it will remain a darker color when the mouse is stationary, then ramp up color during mouse movement. Whatever the case, it will be brighter.

bullet damage based on distance? never thought of that, which is silly cuz thats how it works in life. Im using that idea, thx TMC.

The generating bullets script is long because 90% of it should be sent to a function. copy and paste for me is quicker than wraping my head around that. escpecially when things are broken, which that was.
enemies having hit boxes as children is because i used sliceCollide for collision and it looks wrong when you die right next to someone. there should be that few pixels of give for the player to work with. That being said, i think the hitboxes are too big and I will shave them down a pixel or two next time.
How i used zones didnt work out. clever, maybe. practical, no. I should have just written collision for them.

the Atan function would be nice. not sure how it works or how i got it to work. about 5 hours of trial and error.
but then again, I may be the only person who needed or wanted that.

slice extra data however is awesome. how about infinite slots? or ten or so.
That would be my only request, if i was one to make requests.
NOpe i forgot. I had to store a remainder in a variable, add it to movement*10 then divide by 10, then store the remainder to simulate decimal numbers. That could change. but again its not a common thing with this engine so I dont know.

oh and about spam. you mentioned in a recent post about a secret menu. Took me a few hours but i found it.
shhhh.. i wont tell

Thx for your time and input
Last edited by BlurredVisionGames on Thu Jun 18, 2015 5:30 am, edited 1 time in total.
TMC
Metal King Slime
Posts: 4308
Joined: Sun Apr 10, 2011 9:19 am

Post by TMC »

Regarding the hitboxes, I had thought enemies had a child on each side, but I see now in the slice debugger there's only one. That's normal, but means the script can be quite a bit simpler (using findcollidingslices instead of two nested while loops).

I don't know why you used "seed random" like that; the random number generator is seeded automatically.

It turns out that trigonometry functions have plenty of uses in games. They just haven't been added because of the lack of floating point. I put scripts on the wiki for cos, sin and tan but not atan.

You can emulate floating point number more easily by just storing 100* or 1000* times the value, rather than storing the whole and fractional parts separately. ...I've got very used to doing fixed-point math. I write 13 500 to mean 13.500.

Floating point and infinite data storage on any object are both something that will be added with the new script interpreter. Which is something I want to get into the next version after Callipygous. We could increase number of extra data slots on slices from 3 to something higher. Note thought that there are already lots of data fields on slices that you can use for storing 32 bit ints. Position, size, padding, velocity. Of course you likely can't use those if the slice is visible. Since hopefully the script interpreter isn't far off, I'm a little reluctant to add more extra data slots, (eg then heroes, slices, npcs, etc, wouldn't all be consistent).

I'm amused that you found the secret menu by searching for it. It's only hidden because it's full of half finished things and tools users don't need.
Last edited by TMC on Thu Jun 18, 2015 5:27 pm, edited 1 time in total.
Post Reply