|
||
|
|
|||||||
| Welcome to the Exploding Garrmondo Weiner Interactive Swiss Army Penis. |
|
GFF is a community of gaming and music enthusiasts. We have a team of dedicated moderators, constant member-organized activities, and plenty of custom features, including our unique journal system. If this is your first visit, be sure to check out the FAQ or our GFWiki. You will have to register before you can post. Membership is completely free (and gets rid of the pesky advertisement unit underneath this message).
|
![]() |
|
|
Thread Tools |
Weird issue. Almost too efficient. Using the method I've implemented, I'm performing a lot of the calculations on the GPU. However, with standard formats, only 8 bits of resolution are available for x, or y, or z, because its just like a color where you only have 0-255.
So if the framerate is too fast, then the amount a unit moves can easily be smaller than 1/255th. Even on emulator, regularly getting >20 fps with 400k, so the amount a unit moves is well below 1/255th / frame quite often. Faster it gets, the worse it gets. If the calculated move is < 1/255th of the vector from x0 to x1, the unit simply does not move. May have to hardware limit the movement calculations, just to ensure that the units fall within allowable moves. Also considering trying to use wider color space (10 bit, 16 bit color). Most evident in this video (notably does not actually affect the framerate, you can still scroll). Just unit movement stutters. https://youtube.com/shorts/iVkPBlvb_u8?feature=share How ya doing, buddy? |
Another update, this time on planet development. Been working on shaders and then rendering a planet for interaction. The goal is eventually to be able to move armies around the map, choose a conflict location, and then have the game generate terrain representative of the conflict location.
The first step was generating textures. Currently still using a tiling method. Found a freeware program Texturelab that seemed acceptable. Minimalistic node interface and relatively large selection of modules. (https://www.texturelab.io/) Originally started off with something complicated like this (was trying to do edge matching for a bunch of different orientations. ![]() Eventually found a texture splatting approach that was quite a bit simpler. Now only requires a small texture sheet of the basic terrains. ![]() From there, a lot of work on developing what's known as a spherical roam algorithm so that a spherical object can be viewed at different levels of detail and update correctly. Now have a planet generation system that blends between various terrain and works nicely down to about 80,000 triangles for the planet. Far Away ![]() Near By ![]() Floating Near the Surface ![]() Next up is to try and develop heat, precipitation, and biomes for some diversity in the the actual surface tilings. And make a couple improvements to reduce the "squareness" of the tilings. How ya doing, buddy? |
Finished up temperature, precipitation, and biomes.
Working example shown below: ![]() Biomes are based on this general idea of biomes with dividing lines for biome regions sketched in red. ![]() Next up is trying to get erosion to work on a spherical planet. Currently have a functional erosion shader working, except only for a single region. Example can be found over at Shadertoy at: https://www.shadertoy.com/view/mssXRB Getting the shader to operate well with multiple interconnected regions is proving...challenging. I am a dolphin, do you want me on your body? |
Finished up erosion on a spherical planet, and now have a time lapse erosion effect that creates rivers on the surface calculating once a frame.
![]() A visual movie timelapse of the effect can be seen at: https://twitter.com/gabriel_putnam/s...g5S0pC44NWHA9g I was speaking idiomatically. |
Spent quite a while trying to figure out how to fix some of the spherical rendering issues relative to how flat normals are calculated on a round object. Eventually (partially) solved the issue by using a localized normal rotation method. Each patch figures out how it is oriented relative to the poles of the planet, and then the textures all rotate their normals so that they have a similar global alignment.
![]() The tile rotations can be visualized by looking them as clockwise (red) or counterclockwise (green) rotations on the surface over the various patch regions. An example is shown below. ![]() Also took a bit of a break from this project (was getting burned out) and did a conversion of the NIST JAMA (NIST.gov link) linear algebra library to javascript. For those with a math bent. Also, added a bunch of least squares support routines so you can do curve fitting in up to 4D with almost arbitrary equations. The library with a bunch of starter examples you can try (in the JAMA_Test.html file) can be found at: JAMA4js (Github Link) An example of the curve fitting in 4D. ![]() What kind of toxic man-thing is happening now? |
Finally got the lighting to work correctly. Turns out it was even easier than all the complicated tile rotation and orientation ideas I calculated. Simply was dealing with normal maps in a way that mapping to a sphere did not work with. Fixed the issue, and now have nicely lit sphere with weather eroded terrain.
![]() Now I have to actually figure out how to have a game to go with it. Still working on that part. FELIPE NO |
Test of movement with 400,000 units given individual orders. Uses opengl shader to bulk calculate locations per frame.
Thinking about a Total War++ style game, although 400k might be a bit much. So many units on screen its difficult to really keep track of what's happening on the field. Could see how many players would simply find that scale of game overwhelming rather than enjoyable. Next need formations and better terrain. Eventually, probably going to need layered type of AI decision making for choosing actions at various layers of military units. Something like US Army Unit Divisions Soldier (1) Team (4) Squad (10) Platoon (40) Company (200) Battalion (1000) Brigade (5000) Division (15000) Corps (45000) Field Army (90000) Would also eventually need to deal with vehicles and unit - vehicle interactions. Example of unit movement shown below. ![]() What, you don't want my bikini-clad body? |
Another update on admittedly slow game progress. More work on large scale unit rendering. 250,000 with 3D pos, vel, acc, looping animation targets, and conditional removal. In attached video, units have no lifetime limit. Could probably support 1,000,000 as there is no appreciable slowdown. Just can't see anything with that many particles.
Second video shows the same, except with an 8 second lifetime limit and particle removal. Next up, use as a full particle system with particle-particle interaction. ![]() ![]() Jam it back in, in the dark. |
Further work on game particle systems. This one shows three separate systems with ~250,000. Moving the equivalent of a flamethrower within a 3D cloud of star particles. Has per particle animation, animated size & alpha profiles. Also does lighting and particle reflectivity. Shown at 2x speed. Next particles as light sources and HDR style camera bloom with deferred lighting. Then probably physically based rendering.
![]() There's nowhere I can't reach. |
Another devlog for a game I made for the Library of Congress Friends' Choice Civics Video Game Challenge. Free to play, no ads, FOSS, per LOC requirements. Feel free to try, and if you find any issues leave me a comment and I'll try to fix them.
Game can be found at: http://forsako.rf.gd/AmericanCities/...gressGame.html The challenge itself can be found at Challenge.gov: https://www.challenge.gov/?challenge...game-challenge The game is meant to be a combination of a match-3 game, and a society simulation, such as the Civilization series. The basic match-3 portion features an 8x15 grid, with 8 block subtypes over a range of city attributes (Food, Industry, Health, Coins, Culture, Science, Religion, Civics). The intent is to simulate the development of a city such as Philadelphia (founded ~300 years ago) using match-3 mechanics to qualify for building purchases. The buildings are then intended to provide extra abilities (ex: Tetris style block swaps) or benefits for your town (ex: extra Culture or Civics points with each match). Below is an example of the game layout during play. ![]() This image shows how Tetramino swaps work, using a Z-shape tetramino to shift blocks around in a Z-pattern (the purple "culture" note blocks). Tromino and Tetramino swaps can be moved, rotated, and flipped. ![]() This image shows an example of the building info display, summarizing the historical American building it's supposed to represent, the criteria to build, and the effect on being constructed. ![]() Buildings can be selected for construction in the lower-right, similar to the way Starcraft, C&C, and similar games implement build choices. "Info" displays for each building can be accessed using the (i) icons. Game has been tested and appears to function in: Firefox Developer (119.0b1), Edge (117.0.2045.43), Chrome (117.0.5938.92), Opera (102.0.4880.56), and Android Samsung Browser. - Known issue: Map won't rotate with touch screen interface. Event buildings currently provide no benefit (hit the time-limit for entry). - Things I think are neat: Tetris style (Tromino and Tetromino) swaps (rotate blocks through a pattern), rotations / mirrors of all these, direct block replacement (specific or random), long distance exchanges, automated match shape identification (up to pentominos), building criteria based on specific shapes / rotations / mirrorings, wild-block matches, scalable SVG piece highlighting, a 3D webgl map of the town as its constructed, 80 buildings in 8 categories that all do something to the game state (with multiples of some and 40 hidden events, working on houses that build as you play). - If you want to play with all the abilities (as if every building is completed), check the box about the SVG scaling shapes demo near the bottom. This thing is sticky, and I don't like it. I don't appreciate it. |
Another post, this time for an HTML and CSS related project involving games and web design.
Heard about several sites with challenges about web design for No JS, No JS or CSS, and No HTML whatsoever.
So, made three personal websites to try my hand at each development type.
The No JS one, at least, has quite a bit of game related content that started getting added as a personal challenge. It mostly involves a bunch of stylesheet (CSS) calculations using stylesheets in ways they were not really meant for. Supports mini-games on webpages with a style like the old 8-bit and 16-bit Zelda games with items that can be picked up and then interacted with.
There's some other stuff on the webpage, it's just mostly resume, work, and publication related content, with a few project pages for stuff like OpenGL, Shadertoy, NASA projects, Star Trek viewship / ratings, and Magic the Gathering cards. I am a dolphin, do you want me on your body?
Last edited by Araes; Feb 22, 2026 at 04:08 PM.
|
Next project is working on retro software development. Got interested in old hardware, and what was actually used back in the 80's and 90's, and what those systems were capable of a while ago.
First step was figuring out what might be worthwhile to develop for. Eventually settled on systems that had at least a 1/4 million in sales, with computers and consoles as possibilities. Final list ended up encompassing 16 systems from the "1977 Trinity" (Apple II, Commodore Pet 2001, and Tandy TRS80) through the SNES and Sega Genesis. Six computers in total before the entire market got taken over by IBM clones, starting the three mentioned, adding the VIC-20, and ending with the Commodore 64 and ZX Spectrum. Ten consoles in total from 2nd generation (Channel F and Atari 2600), 3rd generation (Atari 7800, Sega Master System, and NES) up to 4th generation (SNES, Genesis, Game Gear, Game Boy, and Turbografx-16) Unfortunately, making anything work for all these systems requires a pretty huge range of compilers. A lot of really diligent people have made a bunch of compilers that will actually create functional software for these systems, yet there's still a huge range, with several varieties of assembly code to deal with and C code. Ended up needing cc65 (handles a lot, VIC-20, Commodore 64, Commodore PET 2001, Apple II, Atari 2600, Atari 7800, Nintendo Entertainment System, and PC Engine / TurboGrafx-16), Z88dk (TRS80, ZX Spectrum, and Game Boy (possibly)), GBDK with sdcc (better alternative for Game Boy, along with Sega Master System and Game Gear), psneslib with 816-tcc (SNES, takes its own special setup), sgdk with gcc (Sega Genesis, ALSO takes its own special setup and nonsensically crazy to actually get to do anything on Windows), and the VESWiki DevPack with dasm (only thing that will handle a Channel F). Honestly, just kind ended up being a science project in compilers, and whether I could get "anything" to compile on each platform. The full list that got decided on worked out to: Code:
System Sales WxH Color Depth cc65 Z88dk GBDK pvsnes sgdk VES ------------------------------------------------------------------------------------------------------------ VIC-20 2.5 million 176x184 16-color YPbPr x Commodore 64 12.5-17 million 320x200 16-color YPbPr x TRS-80 2.4 million 128x48 monocolor x PET 2001 219,000 80x50 monocolor x Apple II 4.25 million 560x192 16-color YIQ x ZX Spectrum 5 million 256x192 16 colors RGBI x ------------------------------------------------------------------------------------------------------------ Channel F 310,000 104x60 8 colors x Atari 2600 30 million 160x192 16 clr, 8 brt x Atari 7800 1+ million 320x240 256 clr, 16 hue & luma x NES 61.91 million 256x240 54-clr, 3 RGB dimmers x SMS 10-13 million 256x240 64 clr x TurboGrafx-16 5 million 565x484 9 bit clr, 512 clrs x SNES 49.10 million 512x478 15 bit clr, 32,768 clr x Genesis 35 million 320x480 512 clr x Game Boy 118.69 million 160x144 4 colors x x Game Gear 11 million 160x144 4,096 colors x ------------------------------------------------------------------------------------------------------------ Next up, all the various emulators necessary to get anything to actually run, since there are unfortunately not 16 different systems available for testing, and some go for rather large sums on the collectibles markets. I was speaking idiomatically. |
Retro Emulators, need a bunch for 16 different retro systems. Took a while. They all work though. May take a bit to write out fully.
Heard RetroArch is cool, lots of recommendations (may work for your case), yet wanted something with limited layers in between where I had some idea of what was going on. (way too many issues of mysterious failures and not being sure if its the emulator or some other problem) Like last time, current situation is: Six retro computers: Apple II, Commodore Pet 2001, Tandy TRS80, VIC-20, Commodore 64, and ZX Spectrum Ten retro consoles: Fairchild Channel F, Atari 2600, Atari 7800, Sega Master System, NES, SNES, Genesis, Game Gear, Game Boy, and Turbografx-16. So, 16 emulation needs. --------------------------- COMPUTERS --------------------------- TRS-80: Best is George Phillips' trs80gp. Really pretty amazing. Best way to run stuff is to just make a .cmd file with z88dk and then drag and drop it into the emulator. May have to switch models to Model I, Model III, ect... --------------------------- PET 2001: Still working on getting a desktop emulator working. The best that's been found in the interim is an online emulator Mag. Norbert Landsteiner wrote at www.masswerk.at/pet/ Click "Mount File", choose a [yourfilename].prg file, and then at the prompt type: Code:
load"yourfilename",8 run --------------------------- Apple II: Ugly. Barely remember all the stupid stuff that's necessary. Doesn't work almost any way that's specified. Lots of searching wrong stuff. Need AppleWin ver 1.29.16 so that you can actually get an appropriate MASTER.DSK file for loading, and then you need AppleCommander (which will also require a functioning version of the Java runtime, ugg...) so that you can manage and create DSK files with your software actually loaded like its supposed to be. You have to move/copy the MASTER.DSK file to a folder, open AppleCommander, "Import" a file to use, click on a file you want, after it loads, select it, and make sure it's set as "B" for binary, and starts at Address 0803. After that part is done, then you can open AppleWin, click the Apple button (make sure a disk is selected before you start), use the CATALOG command to view the files on the disk, and BRUN [filename] to actually run something. Like "BRUN HELLO" or similar. --------------------------- VIC-20: Best appears to be GTK3VICE, the Versatile Commodore Emulator. Most recent (as of March 2026) is 3.10. Open "xvic.exe" in the "bin" folder. Then "drag and drop" a .prg file into the emulator screen (this is a common theme). Trying to do almost any other load method is complicated and fails. To get some large stuff to run, you may have to go to "Settings"->"Machine"->"Model" and then select a RAM Block Expansion. --------------------------- Commodore 64: Very similar to VIC-20. Best appears to be GTK3VICE, the Versatile Commodore Emulator. Open "x64sc.exe" in the "bin" folder. Then "drag and drop" a .c64 file into the emulator screen. Should work. Most stuff has worked first try. Much less finicky than the VIC-20. --------------------------- ZX Spectrum: Best appears to be Speccy, Portable Sinclair ZX Spectrum and Sam Coupe Emulator by Marat Fayzullin. Latest Version (as of March 2026) is 5.9. Compared to getting anything to actually compile... with the ZX Spectrum, running stuff is actually really easy. "File"->"Open", navigate to file, select a .tap file. Should work if the file is valid. Good UI. Consistent. Easy. May need to select a ZX Spectrum model in "Hardware"->"Computer Model". --------------------------- CONSOLES --------------------------- Channel F: Most painful is one of the earliest. The VESWiki Devpack comes with the MESS emulator (one of the only ones that will work. Yet if not done exactly correctly, it fails all the time. No way to start it without a game already, and the command line stuff is the only way that will work. Also, lots of silent fails with "your cart is not valid". Eventually figured out that something like: Code:
%messPath%\messd channelf -cartridge %cartPath%\game.bin -w -effect sharp -r 640x480 -ka Code:
messd channelf -cartridge %cartPath%\game.bin -w -effect sharp -r 640x480 -ka Code:
set cartPath=%cd% Is what will work. Some demos had it set up nice, and work right away. Some did not. Getting the MESS emulator to function by actually finding it online seperately and downloading stuff is super challenging otherwise. Do not do this. Waste of time. Super finicky. Also crazy trying with Mame. Spend longer wrestling Mame than doing anything. --------------------------- Atari 2600: Best appears to be Stella, A Multi-Platform Atari 2600 VCS Emulator, by Bradford W. Mott, and maintained by Stephen Anthony. Like Speccy, good UI, consistent, easy. Latest version (as of March 2026) appears to be 7.0. Starts in File Browser. Navigate to file of choice, select a .a26 file, such as "hello.a26" and double-click. Should run. --------------------------- Atari 7800: Best that could be found was BupSystem, by Osman D. Celimli. Most recent version appears to be BupSystem 0.9.6.4. Mostly works. Not difficult. "Game"->"Open", navigate to file, select a .a78 file such as "hello.a78", double-click or "Open". Should run. --------------------------- Sega Master System: Best found was GearSystem. Most recent version appears to be Gearsystem-3.8.6. Pretty easy to use. "Gearsystem"->"Open ROM", navigate to file, select a .sms file such as "hello.sms", double-click or "Open". Ditto for GameGear below. --------------------------- NES: Best appears to be MESEN. Has a combined version (NES, SNES, Game Boy (Color), Game Boy Advance, PC Engine, SMS/Game Gear, WonderSwan (Color)) (Latest version: 2.1.1) or separate NES version (best 0.9.9) and SNES version (best 0.4.0) only. "File"->"Open", navigate to file, select a .nes file, such as "hello.nes", double-click or "Open". Ditto for SNES below. --------------------------- SNES: Same as above, best appears to be MESEN. Personally used MESEN-S for SNES only. "File"->"Open", navigate to file, select a .sfc file, such as "hello.sfc", double-click or "Open". Ditto for NES above. --------------------------- Sega Genesis: Best seems to be Gens (however, there may be others as it has not had significant updates since 2021). Latest version seems to be 2.14. "File"->"Open ROM", navigate to file, select a .gen file such as "hello.gen", double-click or "Open". --------------------------- PC Engine / Turbografx-16: Eventually went with Ootake. (website is Japanese) This one, not sure if its the best. Kind of crazy since it's Japanese, menu system does not fit very cleanly. However, recent updates as of 2026.01.03. Most current version is 3.05. On open, after disclaimer, click "CD ROM Game", click "Ok" on system cart dialog, navigate to file, select a .pce file such as "hello.pce", double-click or "Open". --------------------------- Game Boy: Really like BGB Gameboy Emulator. Great emulator. Very minimalistic. Fast, tiny, great debugger. Only (minimal) issue is menu is all right-clicking. Latest version appears to be 1.6.6. Right-click on screen, select "Load ROM", navigate to file, select a .gb file such as "hello.gb", double-click or "Open". Excellent emulator that's worked for decades. GB retro scene's always been amazing. --------------------------- Game Gear: Like above for SMS, best found was GearSystem. Most recent version appears to be Gearsystem-3.8.6. Easy. "Gearsystem"->"Open ROM", navigate to file, select a .gg file such as "hello.gg", double-click or "Open". Ditto for SMS above. --------------------------- That took several days of searching and messing about before a lot of this stuff would even work. Partially just writing to document what actually works for my own memory and where the links are at. AppleII, Channel F, VIC-20, and a few others were pains. Genesis wasn't bad to find an emulator, yet getting anything that "works". Pfttt. Anyhow, maybe this will help somebody else get this stuff functional in their own setup, or me if this current setup crashes. What kind of toxic man-thing is happening now?
Last edited by Araes; Mar 2, 2026 at 07:05 PM.
|
![]() |
| Tags |
| city, development, game, log, simcity, simulation |
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| [Request] Request on Game Music, Sound Development,Audio Gaming etc | aditya258 | General Game Music Discussion | 4 | Dec 21, 2009 05:16 AM |
| Page development how-to | Cal | Help Desk | 3 | Mar 14, 2007 05:10 PM |
| Web Design/Development | UltimaIchijouji | The Creators' Cafe | 57 | Oct 31, 2006 11:19 PM |