Remix.run Logo
Show HN: I'm making a spiritual successor to Ski Free that runs in a browser(broski.winterpixel.io)
105 points by nightowl_games 2 days ago | 40 comments
wingerlang 5 minutes ago | parent | next [-]

[delayed]

philipwhiuk a day ago | parent | prev | next [-]

Where's the 'Reject all' option for the data preferences?

> Your personal data will be processed and information from your device (cookies, unique identifiers, and other device data) may be stored by, accessed by and shared with 264 TCF vendor(s) and 413 ad partner(s), or used specifically by this site or app.

That's pretty insane.

> Measure advertising performance

> Legitimate interest (90 vendors)

You're really gonna send my data to 90 organisations to measure advertising performance?

> FCCDCF

Why is the cookie given this obscure name? Is it so it's harder to identify later?

nightowl_games 18 hours ago | parent | next [-]

Where did you read this? We use AdInPlay to serve ads. There is no ads in this game yet, but I'm probably initializing the SDK.

philipwhiuk 14 hours ago | parent [-]

Immediately on arriving on the site:

https://imgur.com/87pnDR9

djhn 6 hours ago | parent | next [-]

The irony is that imgur uses the same consent dialog box design with the same underhanded tactic of several different categories of ”legitimate interest” that each contain dozens of data providers and need to be toggled off individually.

nightowl_games 11 hours ago | parent | prev [-]

Wtf

I've never seen that before.

Are you in the EU?

Kailhus 9 hours ago | parent [-]

Same here an yep, UK for me. Great game btw

650REDHAIR 21 hours ago | parent | prev [-]

I came here to make the same comment.

I immediately closed the tab.

nightowl_games 2 days ago | parent | prev | next [-]

Made this in Godot 3. Majority of the game is written in c++ as a custom module, ie: compiled directly into the engine. We have a fork of godot that has slight tweaks to it. I profile the game using advanced tools and have rewritten several parts of it several times to be optimal. There is basically 0 gdscript running at runtime. The c++ is far more performant than GDExtension/GDNative/C#. The trees are streamed in and out of the viewport as they become visible. All the tree types and snow render from the same spritesheet. The tree types are pooled instead of created & destroyed. The thing that streams the stuff in and out is optimized. The skiers are rendered using a technique called 'SpriteStacking' where 3d voxel art is rendered into a 2d sheet and 'fanned out' to make a pseudo 3d effect. I even cahc spritestacks are optimized, etc. I even go as far as caching the rotation operations to fan those skier sprites out. The .wasm has been stripped down to ~2.7mb. I want to strip it further and get it smaller. Download size is king. Planning on releasing this on a web platform like crazy games or poki and hoping to build ad revenue.

Next steps are to make it so when you past the boundary fence you enter 'back country mode' that just goes forever and a popup tells you how far youve gone, but if you fall, its game over and ski patrol takes you back. I also want to iterate on the chairlift and make the bots 'queue up'. Not sure about if the chairlift is 'fun' or not. I want the mountain to feel like a real ski resort, but nobody wants to wait.

Anyways, this game is still in development, let me know what you think.

djmips a day ago | parent | next [-]

I like it! Played for about 30 minutes.

Is there a way to make the mouse pointer disappear when playing? System: Windows 10 - Browser: Chrome.

Thanks for sharing!

nightowl_games 18 hours ago | parent [-]

I think you need the pointer to play this game! I could replace it with something more on theme.

Thanks so much for playing!

Rendello 2 days ago | parent | prev [-]

Awesome. I'm interested in making games that can run in the browser, I never considered that Godot might have this capability.

nightowl_games a day ago | parent [-]

It does, but it works best if you compile it yourself, strip the engine down and add your own core game code as c++ classes. Not for everyone, but works good for me as I like c++.

If you wanna go straight to the web, probably start with play canvas or even Defold. Godot works, but if your not a c++ guy or dont want to fork the engine, then your not going to be able to optimize your game as much as I have

captaindiego a day ago | parent [-]

Do you know of any examples of doing something more complicated like this with Godot and C++ (past the normal docs)?... I've got some existing C++ game engine stuff I'd like to integrate with Godot for managing rendering side of things.

nightowl_games 10 hours ago | parent [-]

https://www.youtube.com/watch?v=xo3z9IjGRSo

My colleague made this 3 years ago before we released our first game.

Basically we forked Godot, setup VSCode to compile it, and add new classes to a <repo>/modules/<project_name> folder and it works great. Since this video we've made a suite of macros that allow us to bind variables and methods to the ClassDB in 1 line each. Way nicer than default godot technique for adding new variables/methods.

ChrisArchitect a day ago | parent | prev | next [-]

About SkiFree from The Most Officialest SkiFree Home Page

https://ski.ihoc.net/

nubinetwork a day ago | parent | prev | next [-]

Wheres the scary monster at the end? Running into the wall is such a tease...

wholinator2 a day ago | parent [-]

Agreed, i need like a secret hole in the fence that leads to a path out of bounds or something. A monster that chases you, some kind of halo 3 esque sandworm type boundary monster that you cant ever really beat, but it's fun to play against. Or maybe a secret power up thing that turns the mountain rainbow or something like that. The actual objectives be damned, i see a game like this and i go straight to the fence to see if anything's there. If not, then I'm done

nightowl_games 18 hours ago | parent [-]

That's exactly what I wanna build!

jebarker 2 days ago | parent | prev | next [-]

Definitely captures the feel of a ski resort. I really like the feel of controlling the skier too. Performance on my iPad was great in Safari. Nice job so far.

nightowl_games a day ago | parent [-]

Thank you. 'The feel of a mountain' is what I wanted. "make your own fun"... I'm a performance guy, this game has been optimized to run on old Android phones at 60fps on the web. It absolutely flies on a desktop PC or native mobile, like 1ms for the entire frame.

I think I could add a lot more 'life' to the mountain by going really far with the bot skier AI. Like having them queue up to get on the chairlift, and avoid/flock with each other.

Means a lot to me that you like the feel of the skier. I am the kind of gamedev that will spend an entire week tuning the friction of various mechanics, and I have a huge amount of taste on how things like 'max speed', friction & turning should be done. I've built this taste up over 10 years of making games, and I think I've got good taste, but it still feels great to have someone validate that.

dylanhouli 2 days ago | parent | prev | next [-]

This is awesome. Super fun, love the look.

One thing: I wish there was a way to quickly reset to the top of a chairlift (map maybe?) or set a session and easily teleport back to it.

Reason is, I took the sunshine chair (I think its called that, the one on the right) and then went super far right into the trees cause I was curious if anything was over there, but the trees are super tight so when trying to go back, I keep hitting them and falling, and it's a bit tedious.

nightowl_games 2 days ago | parent [-]

Agreed. Only the first chair is really done, rest of the mountain needs a lot of work. Im thinking of adding a map where you can fast travel.

Thanks for playing and for commenting.

pimlottc 2 days ago | parent | prev | next [-]

Really cool! The sprite style reminds me of bit of old school 2D GTA.

One suggestion, some info at the start on the controls would be helpful. I didn't realize it was mouse controls and spent a while hitting different keys trying to figure out how to get moving.

nightowl_games a day ago | parent [-]

Good point. I do plan on adding keyboard controls reminiscent of Ski Free, but simply saying "Use the mouse to ski" is probably a good thing to do.

ndjdjddjsjj a day ago | parent | prev | next [-]

This is brilliant. The skilift mechanic is brilliant: no boring queue at the bottom but the usual fun chaos at the top.

I like the freedom to go off piste.

Just needs choices! More lifts and more runs.

nightowl_games a day ago | parent [-]

I'm glad you like it. I got a giant mountain that I just gotta fill in. Going to make it so you can go outside the fence and enter an infinite back country mode as well.

gkiely 15 hours ago | parent | prev | next [-]

Pretty cool man.

1. I would replace the chairlift sequence in place of a shortened animation or just make it teleport.

2. Keyboard shortcuts.

3. Where's the monster? ;)

nightowl_games 15 hours ago | parent [-]

1. Yeah your probably right but I want to make the chairlift "good"/"real" somehiw.

2. Yes.

3. Yes!

dahousecat 20 hours ago | parent | prev | next [-]

This is lots of fun. One bit of feedback for mobile: Would be nice if a back swipe took me out of the menu back to the game.

exabrial a day ago | parent | prev | next [-]

love it :) The controls with the mouse are impossible with a track pad tho :/ maybe have a keyboard option?

yellowapple a day ago | parent [-]

My trackpad seems to handle it fine, but I agree that keyboard controls would be nice.

guidedlight 2 days ago | parent | prev | next [-]

I was curious if the Yeti would appear, I assume it is on the to do list. Great game. Keep going with it.

nightowl_games 2 days ago | parent [-]

Yeah todolist for the back country

f549abd01 a day ago | parent | prev | next [-]

Awesome! You really nailed it.

vunderba a day ago | parent | prev | next [-]

Pretty fun! Does seem to have some glitching issues on my iPad Pro - particularly if I cross through a race flag the sound completely glitches and the frame rate stutters for a second.

EDIT: one further note, once the skier has achieved a certain speed, and it shows the flames underneath the skis, it's almost like the graphics are being rendered in separate loops. The skier maintains a consistent frame rate, but the trees seem to be rendered almost at a half frame rate, so they appear to be slightly flickery. I can't tell if this was done deliberately for optimization purposes but it was a bit distracting.

nightowl_games a day ago | parent [-]

Theres a couple things that cause stuttering: the first time a sound is played it is decoded, and the first time a particle effect is seen its shader is compiled (snow and flame particles).

The bug your describing with the trees I think is just a by product of my having not implemented proper 'pixel perfect' camera positioning, ie: the trees are being rendered off center from a pixel so they look glitchy, while the character is always at the same position on the screen so doesnt look glitchy.

I'm suprised your ipad pro has the above sound/shader issue as noticably... Shader compilation is also pretty brutal on windows.

Thanks for the feedback and bug reports.

djmips a day ago | parent [-]

They are working on that! But I guess there's the old trick of having a 'visibile' level at loading time that has all the shaders and variants in it so they get pre-compiled.

nightowl_games 15 hours ago | parent [-]

Yeah I have a node for Godot that does that. I think I'm going to use CPU side stuff for the particles instead of shaders instead... And the audio you can load ahead of time as well

black6 a day ago | parent | prev [-]

If you have the Edge browser you can point it to edge://surf/