7 ms·
Show HN: I'm making a spiritual successor to Ski Free that runs in a browser
- deleted 2y ago[deleted]
- Anaphylaxis 2y agoPretty fun but progress doesn't seem to save on mobile. Can you make this a PWA with a manifest so it can be added to iOS home screen properly please?
- nightowl_games 2y agoMade 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.
- Rendello 2y agoAwesome. I'm interested in making games that can run in the browser, I never considered that Godot might have this capability.
- nightowl_games 2y agoIt 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 2y agoDo 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 2y agohttps://www.youtube.com/watch?v=xo3z9IjGRSo 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.
- djmips 2y agoI 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!
- dylanhouli 2y agoThis 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 2y agoAgreed. 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.
- guidedlight 2y agoI was curious if the Yeti would appear, I assume it is on the to do list. Great game. Keep going with it.
- nightowl_games 2y agoYeah todolist for the back country
- pimlottc 2y agoReally 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 2y agoGood 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.
- jebarker 2y agoDefinitely 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 2y agoThank 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.
- ndjdjddjsjj 2y agoThis 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 2y agoI'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.
- vunderba 2y agoPretty 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 2y agoTry it again! I added 'pixel perfect' camera & player position snapping, as well as interpolated player movement between the tick rate and your monitor's refresh rate.
- vunderba 2y agoNice going - It's significantly smoother. Good luck with the project in the future!
- nightowl_games 2y agoGlad to hear it.
- nightowl_games 2y agoTheres 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.
- exabrial 2y agolove it :) The controls with the mouse are impossible with a track pad tho :/ maybe have a keyboard option?
- yellowapple 2y agoMy trackpad seems to handle it fine, but I agree that keyboard controls would be nice.
- f549abd01 2y agoAwesome! You really nailed it.
- nightowl_games 2y agoThat means a lot to me, thank you.
- deleted 2y ago[deleted]
- nubinetwork 2y agoWheres the scary monster at the end? Running into the wall is such a tease...
- wholinator2 2y agoAgreed, 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 2y agoThat's exactly what I wanna build!
- ChrisArchitect 2y agoAbout SkiFree from The Most Officialest SkiFree Home Page https://ski.ihoc.net/ https://ski.ihoc.net/
- philipwhiuk 2y agoWhere'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?
- 650REDHAIR 2y agoI came here to make the same comment. I immediately closed the tab.
- nightowl_games 2y agoWhere 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 2y agoImmediately on arriving on the site: https://imgur.com/87pnDR9 https://imgur.com/87pnDR9
- nightowl_games 2y agoWtf I've never seen that before. Are you in the EU?
- Kailhus 2y agoSame here an yep, UK for me. Great game btw
- nightowl_games 2y agoThat sucks! It's hard to find an Ad Network that works inside of our games. Our games are normally featured on poki.com or crazygames.com which have their own systems without that aggressive popup. Sorry you saw that, I've never seen that before.
- black6 2y agoIf you have the Edge browser you can point it to edge://surf/
- dahousecat 2y agoThis 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.
- gkiely 2y agoPretty 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 2y ago1. Yeah your probably right but I want to make the chairlift "good"/"real" somehiw. 2. Yes. 3. Yes!
- gkiely 2y agoNice one and good job on the perf it’s noticeable.
- wingerlang 2y agoVery fun, some suggestions: - The ski lift is fun, gives a little break and immerses - Off pist is just as clumsy-smooth-clumsy as in real life, fun to explore as well like in real life - I wish I could get some carving feedback when going really fast Maybe record some peoples sessions and play them back every now and then, psuedo-multiplier. More secrets. I went all the way to the right / bottom and the payoff was not good. Mobile app? Daily/weekly leaderboards for some tracks that changes
- nightowl_games 2y agoCarving feedback eh? Can you give me some more ideas on that?
- wingerlang 2y agoMaybe carving is the wrong word, but when I go fast and turn I expect to slide and make snow fly. There should be some effort required to turn, not in a bad way, but in a "I'm drifting!" way. That would be satisfying.
- nightowl_games 2y agoI see. There is a 'skid' where you send some snow flying, you gotta turn hard and exceed some kinda internal max angle between your 'skis' and your desired turn angle. I think that skid logic could be improved. Try turning really fast!
- wingerlang 2y agoI am aware of this. I am talking about long and slow turns at the highest speed not having any nice feedback like snow or sounds.
- nightowl_games 2y agoAhh. I can iterate on that, thanks.